0
点赞
收藏
分享

微信扫一扫

整除序列(蓝桥杯C/C++B组真题详解)

止止_8fc8 2022-02-12 阅读 105

题目:

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

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

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

样例输入
20

样例输出
20 10 5 2 1

数据范围
对于 80% 的评测用例,1 ≤ n ≤ 109
对于所有评测用例,1 ≤ n ≤ 1018
 


思路:

直接从n往后除

除到1停止除法

每次除的时候输出价格


代码详解:

#include<stdio.h>
#include<iostream>
using namespace std;
typedef long long ll;
#include<algorithm>
#include<cmath>
int main()
{
    ll n;
    cin>>n;
    while(n)
    {
		printf("%lld ",n);
		n/=2;
	}
    return 0;
}

PS:送分题,一定要拿下

不经一番寒彻骨,怎得梅花扑鼻香。____黄蘖禅师《上堂开示颂》

举报

相关推荐

0 条评论