#include <stdio.h>
int main()
{
int i = 2,N=3,n=1;
for(;n<=N;n++)
i = i * i;
printf("%d", i);
return 0;
}
一开始脑子中是这么构思的,为了方便,直接把2赋值给i,然后做3轮运算
但是执行语句后,得到运算结果是256。
所以我改了一下程序。
#include <stdio.h>
int main()
{
int i = 2,N=3,n=1,t;
t = i;
for(;n<=N;n++)
i = t* i;
printf("%d", i);
return 0;
}
在for语句中跑了三轮 但是结果并不是2的三次方=8 ; 而是2的4次方=16
不难发现第一次的i=t*1 就已经是2的2次方是4了,所以我们可以让n的初始值为2/或者让n的初始值还是为1 但是for循环的循环条件改为n<=(N-1)
让我们完善一下这个程序。