平成18年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
W−5
C言語で、次のように定義されたfibonacci 関数を以下のように呼び出した。
このとき変数 x に代入される値を@〜Dの中から選べ。
関数の定義:
 int fibonacci ( int a, int b, int n ) {
  if ( n == 1 ) { return a; }
  else if ( n = 2 ) { return b; }
  else { return fibonacci ( a, b, n-2 ) + fibonacci ( a, b, n-1 ); }
 }
関数の呼出し:
 int x = fibonacci ( 5, 7, 5 );

 @ 12  A 19  B 31  C 50  D 81



【正解】 B

x = fibonacci (5, 7, 5)
=
fibonacci (5, 7, 5-2) + fibonacci (5, 7, 5-1)
=
fibonacci (5, 7, 3) + fibonacci (5, 7, 4)
=
fibonacci (5, 7, 3-2) + fibonacci (5, 7, 3-1)
 +
fibonacci (5, 7, 4-2) + fibonacci (5, 7, 4-1)
= 5 + 7 + 7 + fibonacci (5, 7, 3)
= 19 +
fibonacci (5, 7, 3-2) + fibonacci (5, 7, 3-1)
=
19 + 5 + 7
=
31

よって、
 x = 31

【類題】
H25 V-1


EXCELのマクロのご相談なら ファーストマクロ 



W−4 目次 W−6
ファーストマクロ TOPページ