2.1 フィボナッチ数列を計算する

2.1 フィボナッチ数列を計算する.

数学は苦手じゃ。。。(失笑)

フィボナッチ数列で検索すると、サンプルコードがごろごろ出てくるので、まずは「フィボナッチ数列」の本質を理解することからはじめなきゃだめですね。。。

ちなみに、n > 45 で int の限界を越えます。。。

/**
 * $Id: Example2_1.java 1166 2007-03-11 06:44:26Z nanasess $
 */
package jp.examples;

/**
 * Example2_1
 * 
 * <p>
 *  2.1 Fibonacci series.
 * </p>
 * 
 * @author $Author: nanasess $
 * @version $Revision: 1166 $ $Date: 2007-03-11 15:44:26 +0900 (日, 11 3 2007) $
 */
public class Example2_1 {

    /**
     * フィボナッチ数を計算する.
     *
     * @param フィボナッチ数の元になる数値
     */
    public static void main(String[] args) {
        if (args == null) {
            throw new IllegalArgumentException("Prease input argument.");
        }
        if (args.length != 1) {
            throw new IllegalArgumentException("Input argument of requied once.");
        }
        int n = 0;
        try {
            n = Integer.parseInt(args[0]);
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException("Input argument of number.");
        }
        System.out.println(fib(n));
    }
    
    private static int fib(int n) {
        if (n > 1) {
            return fib(n - 1) + fib(n - 2);
        } else {
            return 1;
        }
    }

}