#include <iostream>
using namespace std;
int main()
{
int num=1;
while(num<10000)
{
num=num*3;
cout<<num<<",";
}
}
最后一个输出是19683,但它应该是6561.我应该如何改变条件?
答案 0 :(得分:2)
当num
为6561
时,条件num < 10000
仍然有效,因此再次输入循环。
...写
int num=1;
do
{
cout<<num<<",";
num=num*3;
}
while(num<10000);
这样一旦num
超过10000
就会保留循环,并且cout
将不会再执行这样的值。请注意,cout
和num*=3
已被切换,因此此循环还会打印1
(与您的对比)。但我认为它也应该打印1
,这就是为什么我敢稍微改变语义:-)。否则,您必须初始化num
,如int num = 3
。
答案 1 :(得分:0)
使用do-while
阻止:
#include <iostream>
int main() {
int num = 1;
do {
std::cout << num << " ";
} while ((num *= 3) < 10000);
return 0;
}
它将打印:
1 3 9 27 81 243 729 2187 6561
答案 2 :(得分:0)
利用您可以使用作业结果的事实:
#include <iostream>
int main()
{
int num = 1;
while((num *= 3) < 10000)
{
std::cout << num << '\n';
}
}
打印:
3
9
27
81
243
729
2187
6561
答案 3 :(得分:0)
在乘法之前放置cout,程序将首先显示一个小于10000的数字,然后将num乘以3.这将显示6561并且6561 * 3> 10000,因此它将退出循环而不打印19683。