对于许多零基础的同学,第一次碰到斐波拉契数列1,1,2,3,5,8,13,21,34,55时,都有可能会遇到这样的情况,就是能够找到规律,能够总结,但是却不能用代码来体现出来。这可能是我们初学者的通病,代码写的少是一方面,关于某些常识性的思想,我们接触的少也是其中之一。比如我们上课的时候,刘老师强调的求和思想,统计思想,我觉得都非常重要。题外话说多了,言归正传,我们再来看看斐波拉契数列,我第一次碰到这道题时,因为没有做出来,就死记硬背地把答案给背下来。当时的代码好像是这样的:
- class Test{
- public static void main(String [] args){
- int a=1;
- int b=1;
- int c;
- for(int x=3;x<30;x++){
- c=b;
- b=a+b;
- a=c;
- System.out.println("第"+x+"项为:"+b);
- }
- }
- }
复制代码
随后笔者就继续学习其他知识,比如面向对象,比如面向对象,API等,十几天之后,当我再次遇到回顾这道题时,发现以前怎么背的忘干净了。于是就又重新来做。于是发现了另外一种求法:
- class Test{
- public static void main(String [] args){
- int a=1;
- int b=1;
- int c;
- for(int x=3;x<30;x++){
- c=a+b;
- a=b;
- b=c;
- System.out.println("第"+x+"项为:"+b);
- }
- }
- }
复制代码
这两种算法,其他条件完全相同,就是在赋值的操作中,顺序不同。相信斐波拉契数列的类似算法还有很多,各位大侠如果知道其他的方法,还望不吝赐教。
|