以下の数列について,初項から第15項までを求めるプログラムと実行結果を示せ。
0 1 1 2 3 5 8 13 21(ただし,初項=0,第1項=1とする。)
ソースコードを書くと、エラーがでた。
#include <stdio.h>
int fib(int n)
{
if(n==1 || n==2)
return 1;
else
return fib(n-1)+fib(n-2);
}
int main(void)
{
int n;
for(n=0;n<17;n++)
printf("%d,",fib(n));
}
正しソースコードを教えてください!
よろしくお願いします。
No.4
- 回答日時:
なんか日本語に指摘が入っていますがw
フィボナッチ数列でしょうか?ならばそうと最初から書けば・・・。
ループを追い掛けていきましょう。
ループで走らせる関数の中で、想定していない数字があるはずです。
No.2
- 回答日時:
関数 fibの引数が 0の場合どこが実行されるのかを考えてみましょう
// n ==0 なので ここは条件が成り立たない
if(n==1 || n==2)
return 1;
else
// ここにくるので 再帰呼出される
// fib(-1) + fib(-2)
return fib(n-1)+fib(n-2);
といった具合になります
fib(-1) や fib(-2) も if(n==1||n==2) の条件に合致しないので
再帰になりfib(-2) や fib(-3)、fib(-3)、fib(-4)を計算しようとします
これを永遠に繰り返して最後にはスタックを食いつぶして止まるか
暴走状態に陥って パソコンなどの再起動となるかもしれません
No.1
- 回答日時:
正しいソースコード以前に、
問題の答えが出ていません。
つまり答えになっていない、です。
正しいソースコードとは、
正しい答え&正しいコーディングです。
少なくとも答えは出しましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# (C言語)めちゃくちゃな値になってしまいます。 5 2022/08/13 11:55
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
複数桁10進数の*桁目だけを抽出...
-
卒業研究でよく分からないとこ...
-
ラップ関数とはどんなものですか?
-
(int *)の意味
-
if と配列の組み合わせ
-
足して100になるような乱数のア...
-
このプログラミング誰か教えて...
-
system関数がうまくいかない
-
【C++】関数ポインタの使い方
-
int16_t の _t は何?
-
C#の質問
-
エラー 添字が付けられた値が、...
-
構造体の勉強中です 合計点の高...
-
C言語 配列と関数の練習問題
-
c言語 〇×ゲーム
-
商と剰余を同時に求める(C言語)
-
c言語
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
std::set<int> で、ある値が何...
-
C言語 エラーの原因がわからな...
-
c言語
-
system関数がうまくいかない
-
C++でvectorにテキストファイル...
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
return 1L
-
「{ } で囲むだけ」は正しい?
-
(マルチスレッド)_beginthrea...
-
PowerShellがうまくいかない
-
このプログラミング誰か教えて...
おすすめ情報