[资料]c措辞 猴子吃桃
//猴子吃桃子问题。有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第天就
只余下一个桃子。
//用多种方法实现求出原来这群猴子共摘了多少个桃子。要求:)采用数组数据结构实现上述求解;)采用
链式数据结构实现上述求解; //3)采用递归实现上述求解。 #include
#include
typedef struct node//节点 存储桃子数量天数以及指向下一个节点的指针
{
int data;
int day;
struct node *link; }node;
int peach1() //利用数组求解 {
int a[10],i;
a[0]=1;
for(i=1;i<10;i++)
a[i]=2*(a[i-1]+1);
a[9]; return
}
int peach2()//利用链式数据结构求解 {
node *p,*head,*q;
int i=0;
head=(node *)malloc(sizeof(node));//建立头结点
head->data=1;
head->day=1;
head->link =NULL;
q=head;
while((q->day)<10)
{
p=(node *)malloc(sizeof(node));//建立节点并给节点赋值
p->data=2*((q->data)+1);
p->day=q->day+1;
p->link=q->link; //建立链
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
q->link=p;
q=q->link;
}
return(p->data);
}
int peach3(int i)//利用递归思想求解 {
if(i==1) return 1;
else
return ( 2*(peach3(i-1)+1) );
}
void main()
{
int a[3];
a[0]=peach1();
a[1]=peach2();
a[2]=peach3(10);
printf("猴子共摘%d个桃子(利用数组求解)\n",a[0]);
printf("猴子共摘%d个桃子(利用数组求解)\n",a[1]);
printf("猴子共摘%d个桃子(利用递归求解)\n",a[2]);