・for ループを使った方法
#include <stdio.h> int FibonacciLoop(int untilNum) { int result = 0; int before = 0; for(int i = 0; i <= untilNum; i++) { if(i == 1) { result = 1; } else { result += before; before = result - before; } } return result; } int main() { FibonacciLoop(10); return 0; }
・再帰を使った方法
#include <stdio.h> int FibonacciRecursive(int param) { int result = 0; if(param <= 0) result = 0; else if(param == 1) result = 1; else result = FibonacciRecursive(param - 2) + FibonacciRecursive(param - 1); return result; } int main() { printf("Result = %d\n", FibonacciRecursive(10)); return 0; }
どっちがスマートなんでしょうね