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

题目传送门

题目大意

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

解题思路

序列的第一个数为 \(n\),所以可以先直接输出 \(n\)

因为序列到 \(1\) 就不能再除了,所以要在 \(n\) 不等于 \(1\) 的情况下不断除以 \(2\),并输出 \(n\)

代码

AC 记录

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
int main() {
	cin>>n;
	cout<<n<<" ";
	while(n!=1){
	 	n/=2;
        cout<<n<<" ";
    }
	return 0;
}
posted @ 2023-02-25 08:20  Ggsddu_zzy  阅读(33)  评论(0编辑  收藏  举报