私は最近、再帰が関数呼び出しの戻りアドレスを格納するためにシステム スタックを使用することを読みました。そこで、この LIFO の概念を再帰的に理解するために、ランダムなコードを作成しました。
int fun( int x)
{ if ( x<6 || x>6 )
{ cout<<x;
return 0;
}
else
return max(fun(x-1),fun(x+1));
}
int main(){
cout<<fun(6);
return 0;
}
出力を期待しています
570
実際の出力は
750
関数がこの順序で呼び出されると想定していました-
fun(6)->fun(5) { it will print 5 then return 0} ->fun(7) { it print 7 then return 0} -> max(0,0) { return 0}
私が間違っているところを修正してください。