整除序列

本文最后更新于:26 分钟前

[蓝桥杯 2020 省 B1] 整除序列

题目描述

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1

1
20

样例输出 #1

1
20 10 5 2 1

提示

对于 $80%$ 的评测用例,1<=n<=1e9.

对于所有评测用例,1<=n<=1e18.

理解

直接模拟,写个循环除2,当为0时结束循环。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include<cstdio>
#include <sstream>
#include<algorithm>
#include<cmath>
using namespace std;
long long n;
int main()
{
cin>>n;
while(n)
{
cout<<n<<" ";
n=n/2;

}
return 0;
}


整除序列
http://example.com/2023/04/24/整除序列/
作者
zzh
发布于
2023年4月24日
更新于
2023年4月24日
许可协议
原文链接: HTTPS://ZHANGZHIHAO-BLOG.GITHUB.IO
版权声明: 转载请注明出处!