题目:计算阶乘。
编程思路分析:
- 用户输入一个数字n(n >= 0)。
- 运算
- 输出该数字n的阶乘结果。
重点运算思路:
- n的阶乘有两种实现方法,一个是从1乘到n,另一个是从n乘到1。
- 在这里可以使用while循环,因为在这个程序中我们会使用到i++或i--,故可以将while循环替换为for循环。
- 【ps:for循环中i = 2是因为我们提前设定好了fact(fact作为存储阶乘结果的变量)= 1,而1 * 1 = 1这一个循环是没有意义的。经过验证发现,0!=1同样可行,因为在循环条件i <= n中,i <= 0判定不进入循环,直接输出fact和n。】
实现代码如下:
#include <stdio.h>
int main(){
int n = 0;
scanf("%d", &n);
int fact = 1;
/*使用while循环
while(i <= n){
fact = i*fact;
i++;
}
printf("%d!=%d", n, fact);*/
//使用for循环
for(int i = 2; i<=n; i++){
fact *= i;
}
printf("%d! = %d", n, fact);
return 0;
}