1.要求
输入一个数,求一个数的阶乘
2.代码分析
n的阶乘就是n*n-1..
例如5的阶乘就是5*4*3*2*1
定义一个i使用for循环创造出i到n的值
在定义一个sum,使sum*i再付给sum就求出n的阶乘
3.代码实现
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
int sum = 1;
for (i = 1; i <= n; i++) {
sum *= i;
}
printf("%d", sum);
return 0;
}
还有一种递归写法
因为n的阶乘是n*(n-1)
f(5)=5*f(4)
f(4)=4*f(3)
f(3)=3*f(2)
f(2)=2*f(1)
f(1)=1
定义一个函数fin
式子就可以写成n*fin(n-1)如果n为1的话,就返还个1
否则就返还个n*fin(n-1)
long long fin(int n) {
if (n == 1) {
return 1;
}
else {
return n * fin(n - 1);
}
}
int main()
{
int n = 0;
scanf("%d", &n);
long long sum=fin(n);
printf("%d", sum);
return 0;
}