求10! (阶乘算法)
#include
int main()
{
int i;
float f=1;
for(i=1;i<=10;i++)
f=f*i;
printf("10!\n",f);
}
思路:先求1!,然后在乘2得到2!,在乘3得3!.......
当i=1时候 for循环后 f=f*i=1
在for循环第二次的时候,i的值被变乘了2,因为在第一个循环中i++后i变成了2.
在进入f=f*i。这个时候f变成了上一次循环得到的值为1,所以f=f*i = 1*2=2
在进入第三次for循环,这时i的值在上次循环中i++变化了,值为3,哪么f的值为上一次操作的2
f=f*i=2*3。
以上面的解释继续循环下去
阅读(999) | 评论(0) | 转发(0) |