C++入門チュートリアル13:再帰アルゴリズム
4741 ワード
再帰アルゴリズム
私はこのシリーズの最初の文章で言ったのではないでしょうか.このシリーズはアルゴリズムを話さない.再帰アルゴリズムはアルゴリズムではありませんか?実はこれは関数の1種の基本的な操作関数の再帰は自分で自分を呼び出して、例を挙げます:あなたに1から100まで出力させるのは一般的に循環で再帰することができて、例のコード:
私のこの再帰関数の中で自分で自分を呼び出して、もちろん、もしあなたが無制限に呼び出すならば、死の循環を形成して、だからまだ“再帰の出口”があって、私の上のこの関数の中のif文は再帰の出口です.もしあなたに再帰で1~100の和を求めさせたら?難しくないです.nを加えるたびにアキュムレータを定義します.サンプルコード:
再帰出口もif文です簡単な再帰で作ったブログがあります.
再帰アルゴリズムの用途
以降のアルゴリズム学習では,遡及アルゴリズムなど,再帰を用いることが多い.
次号予告
ファイルアクション
私はこのシリーズの最初の文章で言ったのではないでしょうか.このシリーズはアルゴリズムを話さない.再帰アルゴリズムはアルゴリズムではありませんか?実はこれは関数の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文です簡単な再帰で作ったブログがあります.
再帰アルゴリズムの用途
以降のアルゴリズム学習では,遡及アルゴリズムなど,再帰を用いることが多い.
次号予告
ファイルアクション