搜索
查看: 1732|回复: 6
打印 上一主题 下一主题

贪吃候的题,我是这样做的,哪里错了呢,答案为什么不对

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-14 21:30:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
某一天早晨,有一个猴子摘下了若干个桃子,当即就吃了一半,还不过瘾,又多吃了一个。第二天又将剩下的桃子吃了一半多一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天的时候再想吃的时,发现只剩下一个桃子了。这个贪吃的猴子第一天究竟摘了多少个桃子呢?


#include <stdio.h>
#include <stdlib.h>
void main()
{
  int a,b,c;
  a=1*2+1;
  b=1;
  while(b<=10)
  {
a=a*2+1;
    b++;
   
  }
    printf("%d",a);
   system("pause");
return 0;
}

最佳答案

查看完整内容

注意“以后每天早上都吃了前一天剩下的一半多一个。” 所以当a10=1时a9=(a10+1)*2,a8=(a9+1)*2…… 你的变量a赋值表达式错了。
沙发
发表于 2013-4-14 21:30:29 | 只看该作者
注意“以后每天早上都吃了前一天剩下的一半多一个。”
所以当a10=1时a9=(a10+1)*2,a8=(a9+1)*2……
你的变量a赋值表达式错了。
板凳
发表于 2013-4-15 16:38:46 | 只看该作者
定义a=1  而且 你while里面的b判断值错误。 应该是while(b<=9)
地板
发表于 2013-4-15 16:42:03 | 只看该作者
或这样让你好理解一些  
我帮你稍微改一下。
a=1;
b=10;
while(b>1)
{
   a=a*2+1;
    b--
}
5#
 楼主| 发表于 2013-4-15 23:11:34 | 只看该作者
一尾鱼 发表于 2013-4-15 16:42
或这样让你好理解一些  
我帮你稍微改一下。
a=1;

答案还是不对啊  难道是逻辑上出了问题
6#
 楼主| 发表于 2013-4-17 00:29:13 | 只看该作者
Smallbee 发表于 2013-4-16 17:38
注意“以后每天早上都吃了前一天剩下的一半多一个。”
所以当a10=1时a9=(a10+1)*2,a8=(a9+1)*2……
你的 ...

哦 哈哈  对啊  这个地方理解错了 a赋值应该是a=(1+1)*2
7#
 楼主| 发表于 2013-4-17 00:32:55 | 只看该作者
正确的做法应该是   这样的
#include <stdio.h>
#include <stdlib.h>
void main()
{
  int a,b,c;
   a=(1+1)*2;
   b=1;
   while(b<=10)
   {
a=(a+1)*2;
     b++;
     
  }
     printf("%d",a);
    system("pause");
return 0;
}
感谢Smallbee的指导
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表