侏儒坐骑在哪买:C语言编程---解题---行的来做出算法---给分的

来源:百度文库 编辑:神马品牌网 时间:2024/05/04 19:00:45
猴子吃桃子!每天吃的是前一天留给当天的一半再多一个(比如第5天剩下10个,则第六天吃掉6个桃子,第七天就吃掉4个桃子)。
到第n天剩下1个,求第一天共摘多少个桃子?
注意:n是一个变量,表示接收的任意一个整数数,即可能是第10天剩下1个,也可能是第6天剩下1个

因为N2=N1-(N1/2+1),所以N1=(N2+1)*2;
用递归算法,以一个函数实现:
peach(int n);
{
if (n=1)
return 1;
else
return (peach(n-1)+1)*2;
}
主函数我就不写了。

比如第5天剩下10个,则第六天吃掉6个桃子,第七天就吃掉4个桃子?????????????????????10-6=4,难道4/2+1=4不成???
#include <stdio.h> //盗版上面的
void main()
{
int n,x=1;/* x为桃子数量 */
printf("input n=");
scanf("%d",&n);
for(n=n-1;n>0;n--) //从倒数地二天开始
{
x=(x+1)*2;
}
printf("x=%d",x);
}

#include <stdio.h>
void main()
{
int n,i,x=1;/* x为桃子数量 */
printf("input n=");
scanf("%d",&n);
for(i=1;i<n;i++)
{
x=(x+1)*2;
}
printf("x=%d",x);
}

我这题做过:
#include<stdio.h>
void main()
{int day,x1,x2,n;
printf("input n:\n");/*此时n比你要的n少一天,如:你算第十天,就要输如n为9*/
scanf("%d",&n);
day=n;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*第一天的桃子数是第二天桃子数加1后的2倍*/
x2=x1;
day--;
}
printf("total=%d\n",x1);
}

猴子每天吃的桃子数和剩下的桃子数之间存在的规律为差1或者2,根据此规律采用先序法遍历二叉树即能找到所需的桃子的数目

别人1楼秒杀这题,其他的人怎么那么蠢