Java和python实现斐波那契数列的感触

菠萝饭 191 2021-12-13

前言

最近在学python,看到教程里有一节是让python实现斐波那契数列:f(x)= f(x-1)+f(x-2)。用python实现起来十分简单,甚至简单到不易理解。代码如下:

# 写一个斐波那契数列
if __name__ == '__main__':
   a,b = 0,1
   while b < 10:
       print(b)
       a,b = b,a+b
       # 结果: 1 1 2 3 5 8
如上,python仅用一行代码在循环里对两个参数赋值就完成了递归计算。作为初学菜鸟实在无法理解,后来想用Java做斐波那契数列对比学习下。代码如下:
//实现斐波那契数列
public class test {
    public static void main(String[] args) {
        int a = 0;
        int b = 1;
        while (b < 10){
            System.out.println(b);
            int c = a+b;
            a = b;
            b = c;
        }
    }
}
//结果:1 1 2 3 5 8
如上,循环中Java需要对两个参数进行三行运算才完成:
  1. 将两个参数加和;
  2. 将原来第二个数赋值给接下来要做加和运算的第一个数;
  3. 将第一次加和值赋值给接下来要做加和运算的第二个数;
python:右边的表达式会在赋值变动之前执行。右边表达式的执行顺序是从左往右的

结论

  1. python比Java简单,但需要对数学和基本逻辑及运算比较了解才容易学习、掌握;
  2. Java对计算的流程没有过分省略,虽然相对繁琐但易于理解。

# 数据结构