フィボナッチ数
Error 404 Not Found経由でWikipediaに載ってたフィボナッチ数の一般項を書いてみた。
#include <stdio.h> #include <math.h> double fib(int n) { double sqrt5 = sqrt(5); return (1.0 / sqrt5) * (pow((1.0+sqrt5) / 2.0, n) - pow((1.0-sqrt5) / 2.0, n)); } int main() { int i; for (i = 1; i <= 10; i++) { printf("[%2d] : %2.2f\n", i, fib(i)); } return 0; }
実行してみる。
[~]% gcc -o fib fib.c -lm [~]% ./fib [ 1] : 1.00 [ 2] : 1.00 [ 3] : 2.00 [ 4] : 3.00 [ 5] : 5.00 [ 6] : 8.00 [ 7] : 13.00 [ 8] : 21.00 [ 9] : 34.00 [10] : 55.00 [~]%
想像以上に精度が良い。