我想打印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;
}
答案 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;
}