-3

我正在尝试在while循环中制作我的“步骤”或增量,以使我的值类似于N = 2、4、8、16 ...基本上是2到2 ^ 20的幂。我试过做

for(j=1;j<=20;j++){
    m=pow(2,2*i); 
    MAX=pow(2,20); 
    INC=pow(2,i);
while(m<=MAX){

然后让我的代码在其中运行。但是在输出中它给了我 2,4,6,8,10,12 .. 有谁知道这样做的正确方法是什么?谢谢!

4

2 回答 2

3

您可以从值 2 开始,然后每次迭代m乘以2。m作为优化,您可以用左移替换乘以 2:

int MAX = pow(2, 20); 
int m = 2;
while(m <= MAX) {
    //do your work
    m <<= 1;
}
于 2013-04-04T11:45:35.563 回答
2

在while循环的每次迭代中;将您的变量乘以 2。

int m = 2;
while(m < maxpow)
{
  m = m * 2;
  printf("%d\n", m);
}
于 2013-04-04T11:45:56.857 回答