A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨旭 黑马帝   /  2011-12-23 11:44  /  2266 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨旭 于 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. }
复制代码

7 个回复

倒序浏览
第一年有一头,以后每四年都是前一年的两倍,20年就是乘以5个2。
int sum=1;
for(int i=1;i<=5;i++)
{
      sum=sum*2;
}
回复 使用道具 举报
周胜 黑马帝 2011-12-23 12:51:32
藤椅
我的算法和楼上的一样。。这样的题个人认为先分析好,找出规律,然后程序就很容易了~
回复 使用道具 举报
yunqiangshan 发表于 2011-12-23 12:04
第一年有一头,以后每四年都是前一年的两倍,20年就是乘以5个2。
int sum=1;
for(int i=1;i ...

第一年已经有2头牛了,一头是大牛,一头是小牛,然后每隔4年小牛变大牛,在生一次小牛。
回复 使用道具 举报
个人觉得应该是0,因为你已经把第一年的2头牛给sum了,所以在用循环的时候 就直接开始计算出 每4年得出的一头牛。然后在把sum这第一年的2头牛,加起来,就哦了。对不对呢,同学
回复 使用道具 举报
那你把sum初始值设为2就可以了啊
回复 使用道具 举报
杨旭 黑马帝 2011-12-23 19:38:01
7#
求高人出现啊
回复 使用道具 举报
周胜 黑马帝 2011-12-23 19:51:51
8#
是1,因为要循环5次,而如果为1的话在i=17的时候开始循环第5次,但是第6次时i为21>20循环结束。
当i=0的时候for循环了6次。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马