C++入門チュートリアル13:再帰アルゴリズム


再帰アルゴリズム
私はこのシリーズの最初の文章で言ったのではないでしょうか.このシリーズはアルゴリズムを話さない.再帰アルゴリズムはアルゴリズムではありませんか?実はこれは関数の1種の基本的な操作関数の再帰は自分で自分を呼び出して、例を挙げます:あなたに1から100まで出力させるのは一般的に循環で再帰することができて、例のコード:
#include
using namespace std;
void print(int n) {
	if(n==1) {
		cout<<n<<endl;
		return ;
	}
	print(n-1);
	cout<<n<<endl;
}
int main() {
	print(100);

	return 0;
}

私のこの再帰関数の中で自分で自分を呼び出して、もちろん、もしあなたが無制限に呼び出すならば、死の循環を形成して、だからまだ“再帰の出口”があって、私の上のこの関数の中のif文は再帰の出口です.もしあなたに再帰で1~100の和を求めさせたら?難しくないです.nを加えるたびにアキュムレータを定義します.サンプルコード:
#include
using namespace std;
int ans=0;
void sum(int n) {
	if(n==1) {
		ans+=n;
		return ;
	}
	sum(n-1);
	ans+=n;
}
int main() {
	sum(100);
	cout<<ans<<endl;

	return 0;
}

再帰出口もif文です簡単な再帰で作ったブログがあります.
再帰アルゴリズムの用途
以降のアルゴリズム学習では,遡及アルゴリズムなど,再帰を用いることが多い.
次号予告
ファイルアクション