如何生成数字直到它们大于10 000

时间:2017-11-25 21:13:47

标签: c++ while-loop

    #include <iostream>

using namespace std;

int main()
{
    int num=1;
    while(num<10000)
    {
        num=num*3;
        cout<<num<<",";
    }
}

最后一个输出是19683,但它应该是6561.我应该如何改变条件?

4 个答案:

答案 0 :(得分:2)

num6561时,条件num < 10000仍然有效,因此再次输入循环。

...写

int num=1;
do 
{
    cout<<num<<",";
    num=num*3;
}
while(num<10000);

这样一旦num超过10000就会保留循环,并且cout将不会再执行这样的值。请注意,coutnum*=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

Live

答案 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。