阶乘
• 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