递归的阶乘运算代码
代码的思路如下
定义一个名为f
的函数,它接受一个整型参数n
并返回一个长整型整数。
如果n
等于1,函数返回1,因为1的阶乘是1。
如果n
大于1,函数通过递归调用自身计算n * f(n-1)
,即n
乘以n-1
的阶乘
还需注意递归函数f在n较大时可能会导致栈溢出,因为每次函数调用都会占用栈空间 对于较大的n值,考虑使用迭代方法代替递归
检查输入是否为负数或非整数
具体代码如下
#include <stdio.h>
long long int f(int n);
int main()
{
int n;
scanf("%d",&n);
printf("%lld",f(n));
}
long long int f(int n)
{
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}