题目描述
有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输出这个序列中值为正数的项。
输入格式
输入一行包含一个整数 n。
输出格式
输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。
数据范围
1≤n≤1018
输入样例:
20
输出样例:
20 10 5 2 1
算法1
(遍历) $O(n)$
直接按规则计算
时间复杂度
参考文献
C++ 代码
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
long long n;
cin>>n;
while(n)
{
cout<<n<<" ";
n/=2;
}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla