java笔试攻略——进阶阶段(斐波那契数列求和)

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
斐波那契数列求和是经典的一道算法题,一下我们以求斐波那契数列的前20项的和为例子。
方法1

public class Demo1 {  
    // 定义三个变量方法  
    public static void main(String[] args) {  
        int a = 1, b = 1, c = 0;  
        System.out.println("斐波那契数列前20项为:");  
        System.out.print(a + "\t" + b + "\t");  
        //因为前面还有两个1、1 所以i<=18  
        for (int i = 1; i <= 18; i++) {  
            c = a + b;  
            a = b;  
            b = c;  
            System.out.print(c + "\t");  
            if ((i + 2) % 5 == 0)  
                System.out.println();  
        }  
    }  
  
}  

方式2

public class Demo3 {  
    // 使用递归方法  
    private static int getFibo(int i) {  
        if (i == 1 || i == 2)  
            return 1;  
        else  
            return getFibo(i - 1) + getFibo(i - 2);  
    }  
  
    public static void main(String[] args) {  
        System.out.println("斐波那契数列的前20项为:");  
        for (int j = 1; j <= 20; j++) {  
            System.out.print(getFibo(j) + "\t");  
            if (j % 5 == 0)  
                System.out.println();  
        }  
    }  
  
}  

你可能感兴趣的:(java笔试)