C言語で、[関数の定義]で示すfibonacci 関数を、[関数の呼び出し]で呼び出した。このとき、変数 x に代入される値はどれか。
[関数の定義]
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(2, 5, 4);
@ 8 A 12 B 13 C 21 D 31
A
x = fibonacci(2, 5, 4)
= fibonacci(2, 5, 4-2) + fibonacci(2, 5, 4-1)
= fibonacci(2, 5, 2) + fibonacci(2, 5, 3)
= 5 + fibonacci(2, 5, 3-2) + fibonacci(2, 5, 3-1)
= 5 + fibonacci(2, 5, 1) + fibonacci(2, 5, 2)
= 5 + 2 + 5
= 12
よって、x = 12
目次 | V−2 |