问题描述
有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输出这个序列中值为正数的项。
输入格式
输入一行包含一个整数 n。
输出格式
输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。
样例输入
20
样例输出
20 10 5 2 1
数据范围
对于 80% 的评测用例,1 ≤ n ≤ 109
对于所有评测用例,1 ≤ n ≤ 1018
思路:这是一道很简单的题,也算是蓝桥的水题吧,题目的要求就是输入一个数n,让它一直除以2,一直除到不是整数为止,实际上就是除到1为止。这里我用到了递归来做,实际上还有更简单的代码,这里我为了练习递归,就这样做了。注意这道题评测用例范围,使用long long见代码:
#include<cstdio>
using namespace std;
typedef long long LL