c语言递归函数猴子偷桃 c语言猴子偷桃问题

C语言猴子吃桃问题递归法/*猴子第一天摘下N个桃子 , 当时就吃了一半,还不过瘾,就又多吃了一个 。*/
/*第二天又将剩下的桃子吃掉一半,又多吃了一个 。*/
/*以后每天都吃前一天剩下的一半零一个 。*/
/*到第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)*22; /*递归*/
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 (); /*屏幕暂留*/
【c语言递归函数猴子偷桃 c语言猴子偷桃问题】 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语言递归函数猴子偷桃的方法为:
#include "stdafx.h"
int main(int argc, char* argv[])
{
int a[10],i,j;
a[0]=1;
for(i=1;i10;i)
{
a[i]=(a[i-1] 1)*2;
}
printf("一共有桃子c语言递归函数猴子偷桃的个数为:%d",a[9]);
return 0;
}
用递归的方法为:
#include "stdafx.h"
int fun(int y)
{
int m;
if(y==1) return
m=1;
else
m=(fun(y-1) 1)*2;
return m;
}
int main(int argc, char* argv[])
{
int a=10;
b=fun(a);
printf("一共有桃子的个数为:%d",b);
return 0;
}
本人不会用链表进行编写c语言递归函数猴子偷桃!
c语言递归函数猴子偷桃的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言猴子偷桃问题、c语言递归函数猴子偷桃的信息别忘了在本站进行查找喔 。

    推荐阅读