黑马程序员技术交流社区

标题: 关于斐波拉契数列的问题 [打印本页]

作者: 海乃百川    时间: 2016-8-12 17:08
标题: 关于斐波拉契数列的问题
题目:古典问题:有一对兔子,从出生后第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);
         }
}
}

作者: Maroon    时间: 2016-8-12 23:41
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的和,就慢慢往后推了
作者: 海乃百川    时间: 2016-8-13 21:08
Maroon 发表于 2016-8-12 23:41
int f1 = 1, f2 = 1, f, M=24;
     for(int i=3; i

讲解得很详细,终于看懂了,谢谢你了




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