黑马程序员技术交流社区

标题: 小牛的疑惑 [打印本页]

作者: 杨旭    时间: 2011-12-23 11:44
标题: 小牛的疑惑
本帖最后由 杨旭 于 2011-12-23 13:22 编辑

有一头牛,生下了一头小牛,该小牛四年之后,也生下一头小牛,生下的每头小牛,四年之后都会生一头下牛,请用程序算出在二十年之后,一共有多少头牛。

我是这么写的  不知道对不对
  1. public class Text01{
  2.         public static void main(String[] args) {
  3.                 int sum = 2;//第一年因为第一头牛已经生下了一头小牛  所以第一年应该有两头牛
  4.                 for (int i = 1; i <=20; i+=4) {//在这里i的变量初始值 有点疑惑  应该是 0 呢  还是1 呢?
  5.                         sum +=sum;
  6.                 }
  7.                 System.out.println(sum);
  8.         }
  9. }
复制代码

作者: yunqiangshan    时间: 2011-12-23 12:04
第一年有一头,以后每四年都是前一年的两倍,20年就是乘以5个2。
int sum=1;
for(int i=1;i<=5;i++)
{
      sum=sum*2;
}
作者: 周胜    时间: 2011-12-23 12:51
我的算法和楼上的一样。。这样的题个人认为先分析好,找出规律,然后程序就很容易了~
作者: 房宝彬    时间: 2011-12-23 13:48
yunqiangshan 发表于 2011-12-23 12:04
第一年有一头,以后每四年都是前一年的两倍,20年就是乘以5个2。
int sum=1;
for(int i=1;i ...

第一年已经有2头牛了,一头是大牛,一头是小牛,然后每隔4年小牛变大牛,在生一次小牛。
作者: 房宝彬    时间: 2011-12-23 13:49
个人觉得应该是0,因为你已经把第一年的2头牛给sum了,所以在用循环的时候 就直接开始计算出 每4年得出的一头牛。然后在把sum这第一年的2头牛,加起来,就哦了。对不对呢,同学
作者: yunqiangshan    时间: 2011-12-23 15:44
那你把sum初始值设为2就可以了啊
作者: 杨旭    时间: 2011-12-23 19:38
求高人出现啊
作者: 周胜    时间: 2011-12-23 19:51
是1,因为要循环5次,而如果为1的话在i=17的时候开始循环第5次,但是第6次时i为21>20循环结束。
当i=0的时候for循环了6次。。




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