編程實現計算n!,也就是n*(n-1)*(n-2)*....*1,可以通過遞歸函數來實現,具體實現方法:
#include <stdio.h>
int Func(int n)
{
if(n < 2)
return 1;
else
return n*Func(n-1);
}
void main()
{
int n =0,m=0;
printf("請輸入壹個正整數:")
scanf("%d",&n);?
m=Func(n);
printf("%d!=%d\n",n,m);
}
在以上程序代碼中,Func()為遞歸函數,主函數main()中接收鍵盤輸入整數值後,調用Func()遞歸函數,首層m=n*(n-1)!,繼續遞歸調用,m=n*(n-1)(n-2)!,這樣逐層遞歸,直到計算出N!。
程序輸出結果如下:
擴展資料:
所謂n的階乘就是從1到n的乘積,所以除了遞歸法來實現以外,其實我們也可以通過壹個for循環,從1到n依次求積同樣可以達到計算n!的目地。
具體實現代碼如下:
#include <stdio.h>
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for循環求累積
s=s*i;
printf("%d\n",s);
return 0;
}
/*
運行結果:(例如求5的階乘)
5
120
*/