その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

(ふろく)フィボナッチ数を求めるプログラム

・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;
}


どっちがスマートなんでしょうね