第十一屆藍橋杯省賽C/C++大學B組 第一場
大家好,我叫亓官劼(qí guān jié )
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcBnYldHL0FWby9mZvwVPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsAjMfd3bkFGazxCMx8VesATMfhHLlN3XnxCMz8FdsYkRGZkRG9lcvx2bjxSa2EWNhJTW1AlUxEFeVRUUfRHelRHL2EzXlpXazxyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3PnBnauIzN2UDZ5YzN1UTZidTNzYzXxQTN0gTM1IzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
試題 G: 整除序列
時間限制: 1.0s 記憶體限制: 512.0MB 本題總分:20 分
【問題描述】
有一個序列,序列的第一個數是 n,後面的每個數是前一個數整除 2,請輸
出這個序列中值為正數的項。
【輸入格式】
輸入一行包含一個整數 n。
【輸出格式】
輸出一行,包含多個整數,相鄰的整數之間用一個空格分隔,表示答案。
【樣例輸入】
20
【樣例輸出】
20 10 5 2 1
【評測用例規模與約定】
對于 80% 的評測用例,1 ≤ n ≤ 109。
試題G 題解
#include <iostream>
using namespace std;
int main(){
long long int n;
cin>>n;
while(n){
// 輸出資料量較大,使用printf比較好
// 在藍橋杯系統系統中,lld應使用%I64d
printf("%lld ",n);
n = n>>1;
}
return 0;
}