一個 C++程式片段如下:int abc(int x) { if (0>=x) return 1; return abc(x-1)+abc(x-2);} int main() { cout << abc(3) << endl; } 下列何者正確?
Acompile 不會通過,因為(0>=x),不符合 C++語法,應該是(x<=0)
Bcompile 會通過,但執行會進入無窮遞迴。因為 abc(int x) {...}內,又再呼叫了 2 次 abc(...),如此不停呼叫,導致無法停止
C會正常執行,列印出 3
D會正常執行,列印出 5正確答案
答案與詳解
