1.题目说明

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

2.输入格式

输入一行包含一个整数 n。

3.输出格式

输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。

4.数据范围

1≤n≤10的18次方

5.输入样例

20

6.输出样例

20 10 5 2 1

7.代码

#include <iostream>
#include <cstring>

using namespace std;

typedef long long LL;

int main()
{
    LL n;
    cin >> n;

    while (n)
    {
        cout << n << ' ';
        n /= 2;
    }

    return 0;
}
02-27 17:25