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

How to generate numbers until they are bigger than 10 000

本文关键字:大于 何生成 数字      更新时间:2023-10-16
    #include <iostream>
using namespace std;
int main()
{
    int num=1;
    while(num<10000)
    {
        num=num*3;
        cout<<num<<",";
    }
}

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

num6561,条件 num < 10000仍然满足,因此再次输入循环。

写...

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

使得循环一旦num超过10000,并且对于此类值,将不再执行cout。请注意,coutnum*=3已切换,因此该循环还打印1(与您的相比之下)。但是我认为它也应该打印1,所以这就是为什么我敢于稍微更改语义:-)的原因。否则,您必须像int num = 3一样启动num

使用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。

利用您可以使用分配结果的事实:

#include <iostream>
int main()
{
    int num = 1;
    while((num *= 3) < 10000)
    {
        std::cout << num << 'n';
    }
}

打印:

3
9
27
81
243
729
2187
6561

在乘法之前放置cout,程序将首先显示一个小于10000的数字,然后将num乘以3. 3. THES 6561,并显示6561*3> 10000,因此它退出了循环不打印19683。