-1

私は最近、再帰が関数呼び出しの戻りアドレスを格納するためにシステム スタックを使用することを読みました。そこで、この 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}

私が間違っているところを修正してください。

4

1 に答える 1