猴子吃桃问题[递归实现]
猴子吃桃问题:小猴摘了很多桃子,第一天吃了一半又多吃一个,第二天又吃掉一半再多吃一个,如此下去,到第真十天恰好还剩一个桃子。问第一天小猴摘了多少桃子?
我是用递归做的:
#include "stdio.h"
int fun(int);
main()
{
int count;
count=fun(1);
printf("count=%d\n",count);
}
int fun(int day)
{
if(day==10)
return 1;
else
return (fun(day+1)+1)*2;
}
----------------解决方案--------------------------------------------------------
编译通过,恭喜
----------------解决方案--------------------------------------------------------
我用数组做的
#include"stdio.h"
void main()
{
int a[10]={0,0,0,0,0,0,0,0,0,0};
int day=10;
int i=10;
a[0]=1;
for(i=0;i<=9;i++)
{
a[i+1]=(a[i]+1)*2;
}
for(i=9;i>=0;i--)
{
printf("%d\n",a[i]);
}
}
----------------解决方案--------------------------------------------------------
要是用链式结构应该怎么做呢?
希望不吝指教
----------------解决方案--------------------------------------------------------
int fun(int);
里面的int代表什么意思?
----------------解决方案--------------------------------------------------------
int fun(int)
类型说明符 被调函数名(类型,类型....);
括号里的int 为形参类型
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]海岸山峰[/un] 在 2008-2-28 16:34 的发言:[/bo]
要是用链式结构应该怎么做呢?
希望不吝指教
要是用链式结构应该怎么做呢?
希望不吝指教
SuperBoy
----------------解决方案--------------------------------------------------------
我用笔算了下是3070
程序结果是1534
再把题目看一遍
觉得题意有点不清楚
第十天剩一个
是当天没吃就剩一个
还是吃后剩一个?
----------------解决方案--------------------------------------------------------
意思应该是指第十天吃过后还剩一个,
如果没吃就还剩一个,那说第九天还剩一个比较好
不过确实有点让人晕的
最好说成第十天吃过后还剩一个
这样结果应该是3070,程序中应该是"day==11"
理解为第十天还没吃就剩一个,应该是lz的程序,结果是1534。
中国语言博大精深,真的不好懂。
[[it] 本帖最后由 默默无纹 于 2008-2-29 15:48 编辑 [/it]]
----------------解决方案--------------------------------------------------------
猴子吃桃问题也有那么大学问哈[bc09]
大家有时间帮我看看这个读心术到底是怎么回事儿?不管你想的是多少它都知道,它怎么知道的???为什么???先谢谢各位了~~~
http://www.wxhtml.com/1/viewspace-15069
----------------解决方案--------------------------------------------------------