zoukankan      html  css  js  c++  java
  • 斐波那契数列—java实现

    最近在面试的时候被问到了斐波那契数列,而且有不同的实现方式,就在这里记录一下。

    定义

    斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368。
    这个数列从第3项开始,每一项都等于前两项之和。

    参考自百度百科

    Java实现

    递推方式

    	public static void testFibonacci1(int n) {
    		int a = 1, b=1, c = 0;
    		for (int i = 1; i <= n; i++) {
    			if (i == 1) {
    				System.out.println("第" + i + "等于" + a);
    			}else if (i == 2) {
    				System.out.println("第" + i + "等于" + b);
    			}else {
    				c = a+b;
    				a = b;
    				b = c;
    				System.out.println("第" + i + "等于" + c);
    			}
    		}
    	}
    

    递推方式-数组方式

    	public static void testFibonacci2(int n) {
    		int[] arrayList = new int[n];
    		arrayList[0] = arrayList[1] =1;
    		for (int i = 0; i < arrayList.length; i++) {
    			if (i == 0) {
    				System.out.println("第" + (i+1) + "等于" + arrayList[0]);
    			}else if (i == 1) {
    				System.out.println("第" + (i+1) + "等于" + arrayList[1]);
    			}else {
    				arrayList[i] = arrayList[i-1] +arrayList[i-2];
    				System.out.println("第" + (i+1) + "等于" + arrayList[i]);
    			}
    		}
    	}
    

    递归方式

    	public static int testFibonacci3(int n) {
    		if (n == 1 || n == 2) {
    			return 1;
    		}else {
    			return test3(n-1) + test3(n-2);
    		}
    	}
    
  • 相关阅读:
    zoj 3644 Kitty's Game
    Planets
    hdoj 2571 命运
    (理论篇)IOC概述和Unity的使用
    重温设计模式之单例模式
    重温设计模式之观察者
    重温设计模式之装饰者
    (理论篇)PetShop全概述
    (理论篇)petshop中缓存运用之我见
    (理论篇)cookie,session,viewstate,cache
  • 原文地址:https://www.cnblogs.com/xiaomingtx/p/5760973.html
Copyright © 2011-2022 走看看