计算阶乘的递推法程序
递推法
#include<stdio.h>
int main()
{
int n,y=1,i;
scanf("%d",&n);
if(n==0||n==1) y=1;//n是0或1的时候阶乘都是1
else for( i=1;i<=n;i++)//从1开始乘,一直乘到n
{
y=i*y;//每次让i乘他前面数的阶乘
}
printf("%d!=%d",n,y);
return 0;
}
int factorial(int n){
int i, f;
f = 1;
for(i=1; i<=n;i++)f*=i;
return f;
}
这样就行了
供参考:
#include<stdio.h>
int main()
{
int n,y=1,i;
scanf("%d",&n);
if(n==0||n==1) y=1;//n是0或1的时候阶乘都是1
else for( i=1;i<=n;i++)
{
y *= i;
}
printf("%d!=%d",n,y);
return 0;
}