新聞中心
C語言猴子吃桃問題遞歸法
/*猴子第一天摘下N個(gè)桃子,當(dāng)時(shí)就吃了一半,還不過癮,就又多吃了一個(gè)。*/
目前累計(jì)服務(wù)客戶數(shù)千家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。成都創(chuàng)新互聯(lián)始終以務(wù)實(shí)、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對(duì)領(lǐng)先技術(shù)的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究、對(duì)客戶形象的視覺傳遞、對(duì)應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
/*第二天又將剩下的桃子吃掉一半,又多吃了一個(gè)。*/
/*以后每天都吃前一天剩下的一半零一個(gè)。*/
/*到第10天在想吃的時(shí)候就剩一個(gè)桃子了*/
/*問第一天共摘下來多少個(gè)桃子?*/
#include?stdio.h
#include?stdlib.h
#include?conio.h
/*第n天所剩桃子數(shù)*/
int?getPeachNumber?(int?n)?{
int?num;?/*定義所剩桃子數(shù)*/
int?i=0;
if?(n==10)??
return?1;?/*遞歸結(jié)束*/
else?{
num?=?getPeachNumber(n+1)*2?+?2;?/*遞歸*/
printf("第%d天:%d個(gè)桃子\n",?n,?num);?/*第n天剩num個(gè)桃子*/?
}
return?num;
}
int?main?(void)?{
int?num;
puts?("每天剩余的桃子數(shù):");
num?=?getPeachNumber?(1);
putchar?('\n');
puts?("================================================================");
putchar?('\n');
printf("猴子第一天摘了%d個(gè)桃子!\n",?num);
putchar?('\n');
getch?();?/*屏幕暫留*/
return?0;
}
運(yùn)行結(jié)果
C語言猴子吃桃遞歸法
一個(gè)猴子摘了一些桃子,它每天吃了其中的一半然后再多吃了一個(gè),
直到第10天,它發(fā)現(xiàn)只有1個(gè)桃子了,問它第一天摘了多少個(gè)桃子?
猴子分N天吃完了桃子,要想求出第1天的桃子數(shù),就先要求出第2天的桃子數(shù),.......因此,有:
a1=(a2+1)*2;
a2=(a3+1)*2;
a3=(a4+1)*2;
......
a9=(a10+1)*2;
a10=1;
現(xiàn)在就知道了算法,我們可以用遞歸來求解:
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1個(gè)了
else a=(a(n-1)+1)*2; //前一天總比后1天多一半加1
}
-------------------------------------
#includestdio.h
int qiu(int a,int n);
main(){
int zuih=1,tians=10;//最后一天的個(gè)數(shù),天數(shù)
long sum;
sum=qiu(1,10);
printf("di yi tian you %ld ge.\n"):
}
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1個(gè)了
else a=(a(n-1)+1)*2; //前一天總比后1天多一半加1
}
C語言作業(yè):用遞歸法怎么做猴子摘桃?知道的大哥大姐幫幫忙!
猴子摘桃問題
猴子第一天摘下N個(gè)桃子,當(dāng)時(shí)就吃了一半,還不過癮,就又多吃了一個(gè)。第二天又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天都吃前一天剩下的一半零一個(gè)。到第10天在想吃的時(shí)候就剩一個(gè)桃子了,問第一天共摘下來多少個(gè)桃子?
#include?stdio.h??
int?getPeachNumber?(n)?{??
int?num;?/*?定義所剩桃子數(shù)?*/
if(n==10)
return?1;?/*遞歸結(jié)束條件?*/
else?{??
num?=?getPeachNumber(n+1)*2?+?2;?/*?遞歸?*/
printf("第%d天所剩桃子%d個(gè)\n",?n,?num);?/*?天數(shù),所剩桃子個(gè)數(shù)?*/
}
return?num;
}
int?main?(void)?{??
int?num?=?getPeachNumber(1);??
printf("猴子第一天摘了%d個(gè)桃子。\n",?num);
getch?();?/*?屏幕暫留?*/
return?0;??
}
運(yùn)行結(jié)果
分享標(biāo)題:c語言遞歸函數(shù)猴子偷桃 猴子吃桃子c語言編程題遞歸
標(biāo)題來源:http://fisionsoft.com.cn/article/hjgsdh.html