2018-01-26 for循环

阶乘

 • n! = 1×2×3×4×…×n

• 写⼀一个程序,让⽤用户输⼊入n,然后计算输 出n!

• 变量:

• 显然读⽤用户的输⼊入需要⼀一个int的n,然后 计算的结果需要⽤用⼀一个变量保存,可以 是int的factor,在计算中需要有⼀一个变量 不断地从1递增到n,那可以是int的i

#include int main()

{

int n;

scanf("%d",&n);

int fact=1,i=1;

for(i=1;i<=n;i++)

{fact*=i;

}

printf("%d!=%d",n,fact);

for 做一个递减的循环

• for ( count=10; count>0; count-- )

! • 就读成:“对于⼀一开始的count=10,当 count>0时,重复做循环体,每⼀一轮循环 在做完循环体内语句后,使得count--。”

小套路

• 做求和的程序时,记录结果的变量应该初 始化为0,⽽而做求积的变量时,记录结果 的变量应该初始化为1

也可以到着算阶乘

• 1×1还是1,所以程序的循环不需要从1开 始,那么改成从多少开始合适呢?这样修 改之后,程序对所有的n都正确吗?这样 的改动有价值吗?

• 除了可以从1乘到n来计算n!,还可以从n乘 到1来计算吧?试试把循环换个⽅方向来计 算n。这时候,还需要循环控制变量i吗?

#include int main()

{

int n;

scanf("%d",&n);

int fact=1,i=1;

for(i=n;i>1;i--)

{fact*=i;

}

printf("%d!=%d",n,fact);

}

Tips for loops

• 如果有固定次数,⽤用for

• 如果必须执⾏行⼀一次,⽤用do_while

• 其他情况⽤用while

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。