递归是比较高端的算法,原理简单,但使用不易,先记下最基础的原理,以后遇到复杂的问题可以参考。
代码:
#include <stdio.h>
//递归实现阶乘
long long int factorial(int n,long long int r)
{
long long int x=r;
if(n>1)
{
x*=factorial(n-1,n);
}else
{
x*=n;
}
return x;
}
int main()
{
long long int r=1;//result
int n;//number
printf("Input n:\n");
scanf("%d",&n);
r=factorial(n,r);
printf("%d!=%lld",n,r);
return 0;
}