循环是否显示C中2的前30次幂?
我想打印2的幂,直到某些数字?在这里,我想打印2的前30次方。下面是我的代码!但我不知道解决办法循环是否显示C中2的前30次幂?,c,C,我想打印2的幂,直到某些数字?在这里,我想打印2的前30次方。下面是我的代码!但我不知道解决办法 #include <stdio.h> int main() { int i; //long pot = 1; for(i=0; i<=32; i=i*2) { printf("%d ", i); } return 0; } #包括 int main(){ int i; //长罐=1; 对于(i=0;i我想你的
#include <stdio.h>
int main() {
int i;
//long pot = 1;
for(i=0; i<=32; i=i*2) {
printf("%d ", i);
}
return 0;
}
#包括
int main(){
int i;
//长罐=1;
对于(i=0;i我想你的意思是:
#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;
}
}
#包括
int main(int argc,char*argv[]){
长值=1;
对于(int i=0;i<30;i+=1){
printf(“%ld\n”,值);
数值*=2;
}
}
从0开始i
,然后在每次迭代中执行i=i*2
。这将始终导致0,因为您要乘以0
您希望从1开始。然后您的乘法将起作用。此外,您需要i
停止在230而不是32
但是,还有另一种方法可以做到这一点。你可以利用乘2等于左移1的事实:
for(i=0; i<30; i++) {
printf("%d ", 1 << i);
}
(i=0;i)的
循环是否显示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;
}
#包括
int main(int argc,char*argv[]){
长整型n=1;
对于(int i=0;i<30;i++){
printf(“%lld\n”,n);
n=n*2;
}
返回0;
}
如果你将i
初始化为0
,任何后续的乘法都会导致..什么?当然,与32的比较是不正确的,因为你的i
应该保存结果。你在这里使用i有两个目的:它是你的循环索引和你的值,所以你只需要遍历循环5次。调试器,p“i”的rintf,诸如此类的东西。编写代码很容易,测试和调试很难,这就是你必须提高的地方。
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
#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;
}