重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

int fib(int k) {
if(k==0) return 0;
 if(k==1) return 1;
 return fib(k-1)+fib(k-2);
}

問1.fib(6)の値を示せ
問2.この関数で再帰呼び出しを行なっている箇所について、再帰呼び出しのかわりにfor文を使って書き直せ。つまり、入力nを与えた時fib(n)と同じ出力が得られる別の関数をfor文を使って書け。但し、必要があれば関数内の局所変数を自由に定義しても良い。for文使った関数の名前は上と同じ関数名fibを用いて関数全体の処理を解答すること。 

解答をお願い致します。

A 回答 (1件)

問1.fib(6)の値を示せ:



定義的にフィボナッチ数列は

0、1、1、2、3、5、8.....

と続いていくので、6番目は8。

問2.この関数で再帰呼び出しを行なっている箇所について、再帰呼び出しのかわりにfor文を使って書き直せ。つまり、入力nを与えた時fib(n)と同じ出力が得られる別の関数をfor文を使って書け。但し、必要があれば関数内の局所変数を自由に定義しても良い。for文使った関数の名前は上と同じ関数名fibを用いて関数全体の処理を解答すること。:

int fib(int k) {
 int a = 0, b = 1, tmp;
 for (int i = 0; i != k; i++) {
  tmp = a;
  a = b;
  b = tmp + b;
 }
 return a;
}
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!