㈠ 猴子吃桃问题(3种方法实现)
/*猴子吃桃*/
#include "malloc.h"
int day[10]; //每天的桃数
struct d{
int tao; //桃
struct d *yesterday; //昨天的指针
}today;
int all;
int Fun1()
{
int i;
day[9]=1;
for(i=8;i>-1;i--) //从最后一天算起
{
day[i]=(day[i+1]+1)*2;
}
printf("%d\n",day[0]); //输出第一天的
}
int Fun2()
{
int i;
int tot;
struct d *p;
today.tao=1;
p=&today; //先到最后一天
i=1;
while(i<10)
{
tot=p->tao; //保存当前天的桃
p->yesterday=malloc(sizeof(struct d)); //分配空间,并当前天的前一天指向该地址
p=p->yesterday; //当前天变为前一天
p->tao=(tot+1)*2; //计算
i++;} //下一天
printf("%d\n",p->tao); //输出
}
int Fun3(d)
int d;
{
if(d==1) return 1; //递归出口
else return (Fun3(d-1)+1)*2; //计算
}
int main()
{
Fun1();
Fun2();
all=Fun3(10);
printf("%d",all);
getchar();
}
㈡ 编程,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上将
int day, x1, x2;
day = 9;
x2 = 1;
while (day > 0)
{
x1 = (x2 + 1) * 2; /*第一天的桃子是第二天桃子数加1后的2倍*/
x2 = x1;
day--; /*因为从后向前推所以天数递减*/
Console.WriteLine("the total is {0}", x1);
Console.ReadKey();