1、打開vc6.0,新建一個vc項目,添加頭文件,添加一個空的main函數(shù),這里先跡野定義一個用來求階乘的函數(shù),函數(shù)的參數(shù)為i,階乘就是不斷的和前面的一個數(shù)相乘,這里就是不斷和fact函數(shù)相乘,之后編寫主函數(shù)的內(nèi)容:

創(chuàng)新互聯(lián)公司服務項目包括白沙黎族網(wǎng)站建設、白沙黎族網(wǎng)站制作、白沙黎族網(wǎng)頁制作以及白沙黎族網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,白沙黎族網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到白沙黎族省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
2、在main函數(shù)姿埋喊定義int類型變量sum,然后調(diào)用fact()將返回值賦予sum,最后液戚使用printf打印sum的值:
3、最后編寫程序好后,來運行程序觀察結(jié)果,這里可以看到打印出了6的階乘。以上就是C語言用遞歸的方式求階乘的過程:
n的階乘,就是從1開畢高始裂慶乘到n,即1*2*3*...*(n-1)*n。
即n!=1*2*3*...*(n-1)*n。
而(n-1)!=1*2*3*...*(n-1)。
所以可以得出,n!=(n-1)!
*
n。
由這個概念,可以得出遞歸求階乘函數(shù)fact的算法:
1
如果傳入?yún)?shù)為0或手源尺1,返回1;
2
對于任意的n,返回n*fact(n-1)。
代碼如下:
int fact(int n)
{
if(n == 0 || n == 1) return 1;
return n*(fact(n-1));
}
#include?stdio.h
int?fun(int?n){
int?k;
if(n==0)?k=1;
else?k=n*fun(n-1);
return?k;
}
//以上困巧為運用遞汪核鍵歸求階乘的函數(shù),以下為主函氏笑數(shù)
void?main()
{
int?n;
scanf("%d",n);
printf("%d!=%d",n,fun(n));
}
運行示例:
舉例:用遞歸方法求n;
#includestdio.h
int main()
{
int n;
int y;
printf("input a integer number:");
scanf("%d",n);
y=fac(n);
printf("%d!=%d\n",n,y);
return 0;
}
int fac(int n)
{
int f;
if(n0)
printf("n0,data error!");
else if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return(f);
}
擴展資料:
return用法:
return返回一個數(shù)值的意思就是把returnlt;表達式gt;后面表達式的值返回給調(diào)用他的函數(shù)。舉個例子:
int sum(int i,int j)
{
return i+j;
printf("這個語句不會被執(zhí)行,因為該子函數(shù)執(zhí)行到上面的return語句就無條件結(jié)束了"轎備);
}
main()
{
int a=10,b=11,c;
c=sum(a,b);
printf("%d",c);
}
程序的輸出為:
21
這個21從何而來呢main函數(shù)神喊調(diào)用sum(a,b)函數(shù)時將a的值賦給i,b的值賦給游帆野j,上面說了return i+j;會計算i+j的值也就是結(jié)果等于21,并將21帶回給調(diào)用它的函數(shù),即c=sum(a,b);相當于c=21,這個21就是由sum(a,b)中的return反回來的。
本文題目:c語言用遞歸函數(shù)算階乘 遞歸求階乘c語言程序
文章分享:http://chinadenli.net/article2/ddpshoc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站營銷、外貿(mào)建站、云服務器、App開發(fā)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)