###聞きたい事
下記コードはn 桁を超える最小のフィボナッチ数を出力するものですが、これを十進n桁以上のフィボナッチ数の中でもっとも小さいものを書き出す様にするには何処をどう修正すれば良いでしょうか?
C
1#include <stdio.h> 2 3#define N 5000 4 5int main(void) 6{ 7 int D = 10; 8 int n; scanf("%d", &n); 9 char a[N + 1], b[N + 1], c[N + 1]; 10 int cm = 1; 11 int i, r; 12 13 for (i = 0; i <= n; i++) a[i] = b[i] = c[i] = 0; 14 b[0] = 1; 15 for (;;) { 16 for (r = i = 0; i < cm; i++) { 17 r = a[i] + b[i] + r; 18 c[i] = r % D; r = r / D; 19 } 20 if (r) { 21 c[cm++] = 1; 22 if (cm > n) break; 23 } 24 for (i = 0; i < cm; i++) a[i] = b[i]; 25 for (i = 0; i < cm; i++) b[i] = c[i]; 26 } 27 for (i = cm; --i >= 0; ) printf("%d", c[i]); 28 printf("\n"); 29 30 return 0; 31}
これはご自身で作成されたコードでしょうか.
それとも「これをそのように修正せよ」という課題の修正元でしょうか.
ご回答ありがとうございます。
上のコードを修正又は新たに作成しても可という課題です。
よろしくお願いいたします。
残念ながらガイドラインで推奨されてないので、他を当たった方が良いです。
https://teratail.com/help/avoid-asking
「何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。」
回答1件
あなたの回答
tips
プレビュー