这是代码。
int n,power=2;
cin>>n;
cout<<power<<endl;
while(power<n){
power=power*2;
cout<<power<<endl;
}
例如,如果我写了20,输出应为“2 4 8 16”。相反,它写信给我“2 4 8 16 32”我应该在这段代码中改变什么?感谢。
答案 0 :(得分:2)
您想要更改排序,请在检查后增加值:
while(power<n){
cout<<power<<endl;
power=power*2;
}
您可能还想删除第一个cout
以删除重复项。
答案 1 :(得分:2)
使用for
循环的力量:
for (int power = 1; power < n; power = power * 2) {
cout << power << endl;
}
答案 2 :(得分:1)
在增加值并打印之前执行测试!因此,即使是超出限制的第一个值也会被打印出来。简单地用这种方式重写:
int n, power = 2;
cin >> n;
while(power < n) {
cout << power << endl;
power *= 2;
}
答案 3 :(得分:0)
您可以将条件更改为
while (power*2 < n)
或在修改值
之前打印cout << power << endl;
power *= 2;