P8711题解

· · 题解

题目

有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输出这个序列中值为正数的项。

题目大意

先输出 n,再输出 n/2,到 n=0 时,停止。

题目解答

用一个while循环,先输出 n,每次让 n=n/2

代码

#include<bits/stdc++.h>
using namespace std;
long long n;//不开long long见祖宗 
int main(){
    cin>>n;
    while(n){
        cout<<n<<" ";//先输出一个n 
        n=n/2;//每个数等于n/2, 再循环输出n 
    }
    return 0;
}