题目内容
有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输出这个序列中值为正数的项。
输入格式
输入一行包含一个整数 n
。
输出格式
输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。
数据范围
1≤n≤1018
输入样例:
20
输出样例:
20 10 5 2 1
思路
水题,直接上手刚就行
代码
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main()
{
\\ 数组要开大,要不然容易超范围
long long n;
cin >>n;
printf("%lld ",n);
while(n/2){
n = n /2;
printf("%lld ",n);
}
return 0;
}