题目描述
计算n!,就是计算1*2*3*...*n的乘积。注意0!=1。
输入
n的值
输出
n!的值
样例输入
5
样例输出
5!=120
思路
1.读取输入:从标准输入中读取一个整数n,表示要计算阶乘的数。
2.初始化阶乘结果:创建一个变量 factorial 并将其初始化为1,因为任何数的阶乘乘积的初始值为1。
3.计算阶乘:使用循环从1到n,将每个数乘到 factorial 上,得到阶乘的结果。
4.输出结果:将计算得到的阶乘结果输出到标准输出,带有相应的标记,例如 "n!=result"。
这种循环计算阶乘的方法是比较直接的。在循环中,我们将1到n的每个数都乘到 factorial 上,最终得到 n 的阶乘。在循环结束后,输出结果。
注意:题目中提到 0! = 1,所以在计算阶乘之前需要将 factorial 初始化为1。
错误示范1:int factorial = 0;将存储阶乘结果的变量初始化为0。
需要注意累乘和累加的区别,累乘应该初始化为1,否则后面累乘的结果永远为0。
错误示范2:for (int i = 1; i <n; i++)漏了=号,此时没有乘上n。
需要注意累乘的范围,即1-n。
错误示范3:printf("%d", factorial);;输出格式错误,只输出了结果。
需要注意题目的输出,如5!=120。注意中英文的感叹号不一样。!!
参考代码
#include <stdio.h>
int main()
{
int n;
// 读取输入
scanf("%d", &n);
// 初始化阶乘结果为1
int factorial = 1;
// 计算阶乘
for (int i = 1; i <= n; i++)
{
factorial *= i;
}
// 输出结果
printf("%d!=%d", n, factorial);
return 0;
}
(by 归忆)