練習問題/解答例/フィボナッチ数列2/C
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[練習問題]]
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];
}
終了行:
[[練習問題]]
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];
}
ページ名: