C语言猴子吃桃问题递归法
/*猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。*/
目前累计服务客户数千家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供网站设计、成都网站设计、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。成都创新互联始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。
/*第二天又将剩下的桃子吃掉一半,又多吃了一个。*/
/*以后每天都吃前一天剩下的一半零一个。*/
/*到第10天在想吃的时候就剩一个桃子了*/
/*问第一天共摘下来多少个桃子?*/
#include stdio.h
#include stdlib.h
#include conio.h
/*第n天所剩桃子数*/
int getPeachNumber (int n) {
int num; /*定义所剩桃子数*/
int i=0;
if (n==10)
return 1; /*递归结束*/
else {
num = getPeachNumber(n+1)*2 + 2; /*递归*/
printf("第%d天:%d个桃子\n", n, num); /*第n天剩num个桃子*/
}
return num;
}
int main (void) {
int num;
puts ("每天剩余的桃子数:");
num = getPeachNumber (1);
putchar ('\n');
puts ("================================================================");
putchar ('\n');
printf("猴子第一天摘了%d个桃子!\n", num);
putchar ('\n');
getch (); /*屏幕暂留*/
return 0;
}
运行结果
C语言猴子吃桃递归法
一个猴子摘了一些桃子,它每天吃了其中的一半然后再多吃了一个,
直到第10天,它发现只有1个桃子了,问它第一天摘了多少个桃子?
猴子分N天吃完了桃子,要想求出第1天的桃子数,就先要求出第2天的桃子数,.......因此,有:
a1=(a2+1)*2;
a2=(a3+1)*2;
a3=(a4+1)*2;
......
a9=(a10+1)*2;
a10=1;
现在就知道了算法,我们可以用递归来求解:
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1个了
else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1
}
-------------------------------------
#includestdio.h
int qiu(int a,int n);
main(){
int zuih=1,tians=10;//最后一天的个数,天数
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个了
else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1
}
C语言作业:用递归法怎么做猴子摘桃?知道的大哥大姐帮帮忙!
猴子摘桃问题
猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?
#include stdio.h
int getPeachNumber (n) {
int num; /* 定义所剩桃子数 */
if(n==10)
return 1; /*递归结束条件 */
else {
num = getPeachNumber(n+1)*2 + 2; /* 递归 */
printf("第%d天所剩桃子%d个\n", n, num); /* 天数,所剩桃子个数 */
}
return num;
}
int main (void) {
int num = getPeachNumber(1);
printf("猴子第一天摘了%d个桃子。\n", num);
getch (); /* 屏幕暂留 */
return 0;
}
运行结果
本文名称:c语言递归函数猴子偷桃 猴子吃桃子c语言编程题递归
URL网址:http://lswzjz.com/article/hjgsdh.html