・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;
}
どっちがスマートなんでしょうね