cnxzp 发表于 2013-2-17 02:42:55

脑子真得老用,不用就跟没脑一样

在下编程基础为0,今天看见一个java编程问题,虽然把解决原理弄明白了,但那三个变量的重新赋值怎么看都没明白。。。在没看到这问题之前,我一直觉得自己领悟能力还行,看过之后觉得自己跟猪脑差不多。

古典问题:有一对兔子,从出生后第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);
         }
}
}
以上三行红字部分,绕了半天没绕懂。

临宇 发表于 2013-2-18 17:02:38

首先,这是一个斐波拉契数列,每个月的兔子总数是,1,1,2,3,5,8,13……类推,f2是当前月的兔子总数,f1是前一个月的兔子总数,f就相当于是一个临时存放变量。所以,三步如下:
f = f2;                //把上一个月的兔子总数存入f中,
f2 = f1 + f2;       //计算出本月的兔子数,存入f2,
f1 = f;               //把上一个月的兔子数存入f1,

寒塘渡鹤影 发表于 2013-3-24 08:50:08

好难啊。。。。。。。。。。。

msdn 发表于 2013-4-6 18:54:45

楼主加油,鱼C加油!我们都看好你哦!

qq97258919 发表于 2013-4-12 10:42:29

菲波拉契数列 经典问题 很多种方法的 你百度下 这个就是个累加的算法 仔细分析下断点看下它的值 就明白了
页: [1]
查看完整版本: 脑子真得老用,不用就跟没脑一样