再帰関数がわかりません。
私は私を助けるためにこのコードを書きましたが、なぜそれがそのように機能するのか理解できません。
0からn/2 i入力までのステップを逆方向に出力しますが、再帰的に実行されたため、低から高にスキップしたすべてのステップを印刷する理由がわかりません。私は近くにいますが、まだそこにはいません...
#include <iostream>
#include <conio.h>
using namespace std;
int recursiv(int );
int times;
int main(){
int x;
cout<<"Imput number\n";
cin>>x;
recursiv(x);
getch();
return 0;
}
int recursiv(int x){
times++;
if(x)
recursiv(x/2);
cout<<"We are now at "<<x/2<<endl;
if (!x)
cout<< "We reached "<<x<<" but it took "<<times-1<< " steps\n";
return 0;
}