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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 海乃百川 中级黑马   /  2016-8-12 17:08  /  1176 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   
//这是一个菲波拉契数列问题
public class lianxi01 {
public static void main(String[] args) {
System.out.println("第1个月的兔子对数:    1");
System.out.println("第2个月的兔子对数:    1");
int f1 = 1, f2 = 1, f, M=24;
     for(int i=3; i<=M; i++) {    从这开始看不懂了希望大神解答
      f = f2;
      f2 = f1 + f2;
      f1 = f;
      System.out.println("第" + i +"个月的兔子对数: "+f2);
         }
}
}

2 个回复

倒序浏览
int f1 = 1, f2 = 1, f, M=24;
     for(int i=3; i<=M; i++) {    从这开始看不懂了希望大神解答
      f = f2;            //把f2存储到临时变量f中
      f2 = f1 + f2;    //f2等于f1和f2的和,也就是说变成了第三个数,是前两个数的和
      f1 = f;             //再把临时变量赋值给f1,此时f1就变成了第二个数,f2变成了第三个数,这是第一次循环
      System.out.println("第" + i +"个月的兔子对数: "+f2);//i代表月份,第三个月的时候,f2代表斐波那契数列的第三个数
         }

}
后面就以此类推了,每次就是把f2的值赋值给了f1,f2变成了f1+f2的和,就慢慢往后推了

评分

参与人数 1黑马币 +3 收起 理由
r1503882525 + 3 回答认真,奖励一下

查看全部评分

回复 使用道具 举报 1 0
Maroon 发表于 2016-8-12 23:41
int f1 = 1, f2 = 1, f, M=24;
     for(int i=3; i

讲解得很详细,终于看懂了,谢谢你了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马