猴子吃桃问题数据结构解决:
1.题目要求
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。
1)采用数组数据结构实现上述求解;2)采用链数据结构实现上述求解;3)采用递归 实现上述求解。
2. 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示"提示信息"之后,由用户在键盘上输入演示程序中需要输入的数据,运算结果显示在其后。
一个猴子摘了一些桃子,它每天吃了其中的一半然后再多吃了一个, 直到第10天,它发现只有1个桃子了,问它第...
:
1.题目要求
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。
1)采用数组数据结构实现上述求解;2)采用链数据结构实现上述求解;3)采用递归 实现上述求解。
2. 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示"提示信息"之后,由用户在键盘上输入演示程序中需要输入的数据,运算结果显示在其后。
一个猴子摘了一些桃子,它每天吃了其中的一半然后再多吃了一个, 直到第10天,它发现只有1个桃子了,问它第一天摘了多少个桃子?
猴子分N天吃完了桃子,要想求出第1天的桃子数,就先要求出第2天的桃子数,.......因此,有: a1=(a2+1)*2;
a2=(a3+1)*2;
a3=(a4+1)*2;
......
a9=(a10+1)*2;
a10=1;
1) 采用数组数据结构实现
#include
using namespace std;
static unsigned short arr[10]={0,0,0,0,0,0,0,0,0,1};
void main()
{
for (int i=9; i>0; i--)
{
arr[i-1]=2*(arr[i]+1);
cout<<"第"< using namespace std;
struct data
{
unsigned short total;
data* next;
};
void main()
{
data* p0; //哨兵结点
data* p1;
p0=p1=new data;
p0->total=1; //第十天剩1个桃
p0->next=p1;
for (int i=9; i>=1; i--)
{
p1=new data;
p1->total=2*((p0->next)->total+1);
p1->next=p0->next;
p0->next=p1;
}
p1=p0->next;
for (i=1; i<=10; i++)
{
cout<<"第"<total<next;
}
}
3) 采用递归实现
#include using namespace std;
int eat(int n)
{
if (10==n)
return 1;
else
return 2*(eat(n+1)+1);
}
void main()
{
for (int i=1; i<=10; i++)
cout<<"第"<
本文档为【猴子吃桃问题数据结构解决】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。