c語言遞歸公式求函數(shù)的值 c語言遞歸函數(shù)怎么寫

用C語言的函數(shù)遞歸方法來求

#include stdio.h

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供西鄉(xiāng)塘網(wǎng)站建設(shè)、西鄉(xiāng)塘做網(wǎng)站、西鄉(xiāng)塘網(wǎng)站設(shè)計、西鄉(xiāng)塘網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、西鄉(xiāng)塘企業(yè)網(wǎng)站模板建站服務(wù),10多年西鄉(xiāng)塘做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

#include math.h

void fun2(int m)

{

int k=0,a[10];

for(int i=2;im;i++)

if(m%i==0)

a[k++]=i;

for(int i=0;ik;i++)

{

printf("%d",a[i]);

if(i!=k-1)

printf(",");

}

}

void fun1(int m)

{

if(m2)

printf("%d is a prime number",m);

for(int i=2;i*i=m;i++)

if(m%i==0)

fun2(m);

else

printf("%d is a prime number",m);

}

int main( )

{ int n;

scanf("%d",n);

fun1(n);

return 0;

}

c語言遞歸算法

用遞歸法計算n!

用遞歸法計算n!可用下述公式表示:

n!=1 (n=0,1)

n×(n-1)! (n1)

按公式可編程如下:

long ff(int n)

{

long f;

if(n0) printf("n0,input error");

else if(n==0||n==1) f=1;

else f=ff(n-1)*n;

return(f);

}

main()

{

int n;

long y;

printf("\ninput a inteager number:\n");

scanf("%d",n);

y=ff(n);

printf("%d!=%ld",n,y);

}

程序中給出的函數(shù)ff是一個遞歸函數(shù)。主函數(shù)調(diào)用ff 后即進入函數(shù)ff執(zhí)行,如果n0,n==0或n=1時都將結(jié)束函數(shù)的執(zhí)行,否則就遞歸調(diào)用ff函數(shù)自身。由于每次遞歸調(diào)用的實參為n-1,即把n-1的值賦予形參n,最后當(dāng)n-1的值為1時再作遞歸調(diào)用,形參n的值也為1,將使遞歸終止。然后可逐層退回。

下面我們再舉例說明該過程。設(shè)執(zhí)行本程序時輸入為5,即求5!。在主函數(shù)中的調(diào)用語句即為y=ff(5),進入ff函數(shù)后,由于n=5,不等于0或1,故應(yīng)執(zhí)行f=ff(n-1)*n,即f=ff(5-1)*5。該語句對ff作遞歸調(diào)用即ff(4)。

進行四次遞歸調(diào)用后,ff函數(shù)形參取得的值變?yōu)?,故不再繼續(xù)遞歸調(diào)用而開始逐層返回主調(diào)函數(shù)。ff(1)的函數(shù)返回值為1,ff(2)的返回值為1*2=2,ff(3)的返回值為2*3=6,ff(4)的返回值為6*4=24,最后返回值ff(5)為24*5=120。

C語言函數(shù)遞歸計算

#include?stdio.h

#include?stdlib.h

int?count=0;

int?fun(int?x,int?n)

{

count++;

if(n==2)

{

return?x*x;

}

else?if(n%2==0)

{

return?fun(x,n/2)*fun(x,n/2);

}

else?if(n%2==1)

{

return?fun(x,n-1)*x;

}

}

int?main(int?argc,?char?*argv[])?{

int?sum=0,x,n;

printf("請輸入x?n的值(兩數(shù)之間用空格間隔):");

scanf("%d?%d",x,n);

sum=fun(x,n);

printf("%d??遞歸調(diào)用了%d次",sum,count);

return?0;

}

本文標(biāo)題:c語言遞歸公式求函數(shù)的值 c語言遞歸函數(shù)怎么寫
URL分享:http://muchs.cn/article36/doeodsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、用戶體驗、網(wǎng)站制作響應(yīng)式網(wǎng)站、定制網(wǎng)站

廣告

聲明:本網(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)

手機網(wǎng)站建設(shè)