基本情報トップに戻る
B難易度: 標準2026年度

基本情報技術者 予想問題B 第71問

問題

次の擬似言語プログラムで、n=6のとき、関数fib(n)の戻り値はいくつか。 整数型: fib(整数型: n) if (n ≦ 1) return n endif return fib(n - 1) + fib(n - 2)

選択肢

  1. 1ア 5
  2. 2イ 8
  3. 3ウ 13
  4. 4エ 21

正解

2. イ 8

詳しい解説を見る

解説

fib(n)は、n≦1のときnをそのまま返し、それ以外は fib(n-1) + fib(n-2) を返すフィボナッチ数列の再帰関数である。小さい方から順に値を積み上げると、fib(0)=0、fib(1)=1、fib(2)=0+1=1、fib(3)=1+1=2、fib(4)=1+2=3、fib(5)=2+3=5、fib(6)=3+5=8 となり、イの8が正解である。ウの13はfib(7)、エの21はfib(8)、アの5はfib(5)であり、数列の数え始めの位置を誤ると選んでしまう値である。本問の鍵は基底条件が「n≦1でnを返す」、すなわちfib(0)=0、fib(1)=1から始まる点で、これを確認せずに思い込みで数えると1項ずれる。再帰問題ではまず基底条件の値を確かめてから展開する、小さいnから表を作って積み上げる、という2つの定石を徹底したい。

一問一答

科目A 180問+科目B 60問

Bの関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。