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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看到很多讨论斐波那契数列的,方法很多,我就用了一个既不是数列也不是递归的。
月份:1           2          3         4        5        6
对数;1           1         2         3        5        8
变量 a=0     a=1      a=1     a=2    a=3      a=5
        b=1     b=1     b=2     b=3    b=5     b=8
其中b作为每月兔子数,a作为一个临时变量

  1. <p>int a=0;
  2. int b=1;
  3. for(int i=1;i<=20;i++){
  4.              //那么i作为月份
  5.        b=b+a;//这一个月的b等于上个月b+a
  6.        a=b-a;//然后将上个月的b赋值给这个月的a
  7. }              //此方法不好,思想不好理解。但是还是可以很好的计算</p><p>System.out.println(b);</p>
复制代码

这是不是很高效呢,没有数组,也没有递归,就是不大好理解,纯粹数学问题了

6 个回复

倒序浏览
这个思路还可以,不过不太好想出来
回复 使用道具 举报
感觉这个方法不容易想到,还是递归简单点!
回复 使用道具 举报
想法不错,学习了
回复 使用道具 举报
呵呵,我也这么想的,不过用的是模交换2个数,其实很好理解啊, 一起独辟蹊径把~
回复 使用道具 举报
qian0217wei 发表于 2015-6-11 00:44
感觉这个方法不容易想到,还是递归简单点!

就是啊,我也是一直用递归的,这个方法是基于数学推算的。不好理解但是计算速度快
回复 使用道具 举报
a5231865 发表于 2015-6-11 06:48
呵呵,我也这么想的,不过用的是模交换2个数,其实很好理解啊, 一起独辟蹊径把~ ...

哈哈哈解决问题的方法很多,对于要求不高的地方,用哪个方法都是无可厚非的。但是对于要求运算速度和效率的地方就有的要求了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马