黑马程序员技术交流社区

标题: 猴子吃桃问题,我就是不会呀,不是我懒呀。 [打印本页]

作者: 漫漫    时间: 2014-7-17 16:40
标题: 猴子吃桃问题,我就是不会呀,不是我懒呀。
本帖最后由 漫漫 于 2014-7-19 08:52 编辑

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下
   的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。



作者: istream    时间: 2014-7-17 23:14
本帖最后由 istream 于 2014-7-17 23:16 编辑

1534个桃子
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int sum = 1;
  5.     for (int i = 0; i < 9; i++)
  6.     {
  7.         sum += 1;
  8.         sum *= 2;
  9.     }
  10.     printf("sum= %d\n", sum);
  11.     return 0;
  12. }
复制代码




作者: 追马    时间: 2014-7-18 09:45
公务员考试里面有类似的题。
采取逆向思维的方法,从后往前推断。
  1. main()
  2. {
  3. int day,x1,x2;
  4. day=9;
  5. x2=1;
  6. while(day>0)
  7.  {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
  8.  x2=x1;
  9.  day--;
  10.  }
  11. printf("the total is %d\n",x1);
  12. }
复制代码

作者: chengnuoaini030    时间: 2014-7-18 14:27
我来看一下~
作者: 为爱编程    时间: 2014-7-18 15:38
从后往前推,初值为一,每次的值等于前一次的值加一再乘以二,循环10次。即可得到结果。
作者: 爱情路13号    时间: 2014-7-19 00:25
  1. 这一题还是很久一段时间之前写,如果没记错的话应该是100道经典题目里面的。主要考得是算法设计,就是看你怎么想这个问题,如何让设计解决问题的思路。代码倒是挺容易的
  2. #include <stdio.h>

  3. int main(int argc, const char * argv[])
  4. {
  5.     // insert code here...
  6.     int n =1;

  7.    
  8.     for (int i =2; i<=9; i++)
  9.     {
  10.         n=(n+1)*2;
  11.     }
  12.    
  13.     printf("%d\n",n);
  14.     return 0;
  15. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2