[[練習問題]]

long longの上限値を考慮して第90項まで対応。

 #include <stdio.h>
 #include <stdlib.h>
 #define LIMIT 90
 typedef long long i64;
 
 i64 fib(int n);
 i64 dp[LIMIT];
 
 int main(int argc, char *argv[]) {
     int n;
     if(argc < 2) { return 1; }
     n = atoi(argv[1]);
     if(n < 1) { return 1; }
     if(LIMIT < n) { return 1; }
     printf("%3d: %lld\n", n, fib(n));
     return 0;
 }
 
 i64 fib(int n) {
     int i;
     dp[1] = dp[2] = 1LL;
     for(i=2; i<=n; i++) {
         dp[i] = dp[i-1] + dp[i-2];
     }
     return dp[n];
 }

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS