Fibonacci.java
class Fibonacci {
public static void main(String[] args) {
for(int i=0;i<11;i+=1) {
System.out.println(fibonacci(i));
}
}
static int fibonacci(int n) {
return (n==1||n==0)?n:fibonacci(n-2)+fibonacci(n-1);
}
}
##環境
ベアボーン:Shuttle XS35GS V3
OS:win7(32bit)
JAVA SE8(jdk-8u45-windows-i586)
##解説
フィボナッチ数列を再帰関数を使い第0項から第10項目まで求め表示する。
関数fibonacciはnが0または1ならnを返し、0と1以外ならば、fibonacci(n-2)+fibonacci(n-1)を返す。
これを三項演算子を使えば、1行で記述できる。
fibonacci関数自身がfibonacciを呼び出す。これを再帰と呼び、関数fibonacciを再帰関数と呼ぶ。
##コンパイルと実行結果
c:\2015>javac Fibonacci.java
c:\2015>java Fibonacci
0
1
1
2
3
5
8
13
21
34
55
##55という数字
55って数値は、フィボナッチ数列第10項目の数字であり、また、1から10までの整数を足すと55になる。
また、原子番号55はセシウムCsである。
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
「フィボナッチ数列」と「1から10まで足した値」って全く関係なさそうにみえて、こんなつながりが
あることを見つけたときは驚いた。