C言語で、次のように定義されたfibonacci 関数を以下のように呼び出した。このとき変数 x に代入される値を@〜Dの中から選べ。
関数の定義:
int fibonacc ( 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
W−4 | 目次 | W−6 |