猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃

#include<stdio.h>voidmain(){intj;floati;for(i=10000;i>1;i--){for(j=1;j<=10;j++)i=i/2-... #include<stdio.h>
void main()
{
int j;
float i;
for(i=10000;i>1;i--)
{for(j=1;j<=10;j++)
i=i/2-1;
if(i==1) break;
}
printf("%d\n",i);
/* int i,j;
j=1;
for(i=0;i<10;i++)
j=(j+1)*2;
printf("%d\n",j);*/
} 我用正向思维,用穷举法去找到这个数,为什么不可以,我得到的结果是0,逆向思维的我会了,就是搞不明白我前面那个程序出错在哪里???
//:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
//以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
展开
 我来答
jasson918
推荐于2017-11-23 · TA获得超过2867个赞
知道小有建树答主
回答量:1100
采纳率:66%
帮助的人:443万
展开全部
程序中错误比较多:
1、是一个思维问题,猴子吃桃子会不会把一个桃子分两半来吃,你在程序中使用了实数,而不是整数,应该判断是不是能够被2整除;
2、i使用实数,也就是浮点数,而输出的时候使用的是%d的格式,所以,输出为0,可以改变格式为%f,或者将i转变成整数(printf("%d\n",(int)i);)
3、在外循环内部,改变了循环控制变量的值,也就是i的值,第一个循环下来,i的值就成了0了,所以不可能再循环,即使再循环,结果也不是要判断的i值,而是经过多次运算后的结果:1,你可以引入另外一个变量来做内循环和进行判断。

void main()
{
int j,k;
int i;
for(i=10000;i>1;i--)
{
k=i;
for(j=1;j<=10;j++)
{
if(k!=(k/2)*2) break;
k=k/2-1;
// printf("%d\n",k);
}
if(k==1) break;
}
printf("%d\n",i);
/* int i,j;
j=1;
for(i=0;i<10;i++)
j=(j+1)*2;
printf("%d\n",j);*/
}
答题小能手33号
2008-12-04 · TA获得超过5471个赞
知道小有建树答主
回答量:1777
采纳率:50%
帮助的人:704万
展开全部
1 4 10 22 46 94 190 382 766 1534

【程序21】
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
1.程序分析:采取逆向思维的方法,从后往前推断。
2.程序源代码:
main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2=x1;
day--;
}
printf("the total is %d\n",x1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
99人间百科百晓生
高粉答主

2016-04-16 · 各类问题均能得心应手
99人间百科百晓生
采纳数:6435 获赞数:18193

向TA提问 私信TA
展开全部
推呀:第九天吃完只剩一个了,那么就是(1+1)X2=4个
第八天:10个
第七天:22个
第六天:46个
第五天:94个
第四天:190个
第三天:382个
第二天:766个
第一天总共有:(766+1)X2=1534个
所以共摘了1534个桃子!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一半加一
2018-11-17 · TA获得超过151个赞
知道答主
回答量:19
采纳率:0%
帮助的人:1.3万
展开全部
int tian=9;//实际吃的天数
int yi=1;//最后所剩的桃子
while(tian>0)
{
yi=(yi+1)*2;//每天吃一半加一个,反过来就是加一乘2,所得赋值给yi,yi=4,就刷新了yi变量,等天数减到没得减,经过9次就是yi=1534,然后输出。
tian--;
}
printf("%d",yi);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二白Q0
2010-12-27 · TA获得超过2413个赞
知道大有可为答主
回答量:990
采纳率:0%
帮助的人:1094万
展开全部
天数n与剩下的桃子f之间的关系是:f(n)=f(n-1)/2-1
倒推的话是:f(10)=1; f(n-1)=(f(n)+1)*2

#include <stdio.h>
void main()
{
int i;
int p[10];
p[10]=1;
for(i=9;i>0;i--)
{
p[i]=(p[i+1]+1)*2;
printf("day: %d; peaches: %d\n",i,p[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式