for循环显示C中2的前30个幂?

时间:2018-03-06 21:51:33

标签: c

我想打印2的力量直到某些数字?就像在这里我想要打印前30的力量2.在我的代码下面!但我不知道解决方案!

#include <stdio.h>

int main() {

    int i;

    //long pot = 1;

    for(i=0; i<=32; i=i*2) {

        printf("%d ", i);

    }

    return 0;

}

4 个答案:

答案 0 :(得分:1)

您从0开始i,然后在每次迭代时执行i=i*2。这将始终为0,因为您乘以0。

你想从1开始。然后你的乘法将起作用。此外,您需要i停在2 30 而不是32。

然而,有另一种方法可以做到这一点。您可以利用乘以2与向左移动1相同的事实:

for(i=0; i<30; i++) {
    printf("%d ", 1 << i);
}

答案 1 :(得分:1)

  

for循环显示C中2的前30个幂?

在循环中进行处理(乘法)。这是最常用的方法。

#include <stdio.h>

#define POWER_UP_TO   30

int main(void) {

    long long int value = 1;

    for (int i = 0; i < POWER_UP_TO; i++) {  // will loop POWER_UP_TO times

        printf("2^%d = %lld\n", i, value);
        value = value * 2;
    }

    return 0;
}

输出:

2^0 = 1                                                                                                                                       
2^1 = 2                                                                                                                                       
2^2 = 4                                                                                                                                       
2^3 = 8                                                                                                                                       
2^4 = 16                                                                                                                                      
2^5 = 32                                                                                                                                      
2^6 = 64                                                                                                                                      
2^7 = 128                                                                                                                                     
2^8 = 256                                                                                                                                     
2^9 = 512                                                                                                                                     
2^10 = 1024                                                                                                                                   
2^11 = 2048                                                                                                                                   
2^12 = 4096                                                                                                                                   
2^13 = 8192                                                                                                                                   
2^14 = 16384                                                                                                                                  
2^15 = 32768                                                                                                                                  
2^16 = 65536                                                                                                                                  
2^17 = 131072                                                                                                                                 
2^18 = 262144                                                                                                                                 
2^19 = 524288                                                                                                                                 
2^20 = 1048576                                                                                                                                
2^21 = 2097152                                                                                                                                
2^22 = 4194304                                                                                                                                
2^23 = 8388608                                                                                                                                
2^24 = 16777216                                                                                                                               
2^25 = 33554432                                                                                                                               
2^26 = 67108864                                                                                                                               
2^27 = 134217728                                                                                                                              
2^28 = 268435456                                                                                                                              
2^29 = 536870912      

答案 2 :(得分:0)

我认为你的意思是:

#include <stdio.h>

int main(int argc, char *argv[]) {
    long value = 1;

    for (int i = 0; i < 30; i += 1) {
        printf("%ld\n", value);
        value *= 2;
    }
}

答案 3 :(得分:0)

#include <stdio.h>

int main(int argc, char *argv[]) {
    long long int n = 1;

    for (int i = 0; i < 30; i++) {
        printf("%lld\n", n);
        n = n*2;
    }
    return 0;
    }