アルゴリズム入門(二)再帰アルゴリズム
4026 ワード
再帰的な考えは、一般的なアルゴリズム設計思想と比較して、再帰的アルゴリズムとは、直接的または間接的に元のアルゴリズム自体を呼び出すアルゴリズムであり、いくつかの具体的な例で再帰的アルゴリズム思想を理解することができる.
【例題一】nの階乗nを計算します.
プログラム解析 n=0の場合、n!=0;n>0の時、nn(n-1)
この方法はなかなか出られないです.
{
font-size:small;
カラー:black
font-family:consosolas、「Courier New」、courier、monoospace;
background-カラー:菗菗ffff;
//white-space:pre;*/
)
.csharp code pre{margin:0 em;}
.csharpcode.rem{color=0000 ff}
.csharpcode.kwrd{color=0000 ff}
.csharpcode.str{color=red}
.csharpcode.op{color=0000 c 0}
.csharpcode.preproc{color=red}
.csharpcode.asp{background}
.csharrpcode.html
.csharpcode.atr{color=red}
.csharpcode.alt
{
background-彩色:〹f 4 f 4;
width:100%
magin:0 em;
)
.csharpcode.lnum{color=0000 ff}
{
font-size:small;
カラー:black
font-family:consosolas、「Courier New」、courier、monoospace;
background-カラー:菗菗ffff;
//white-space:pre;*/
)
.csharp code pre{margin:0 em;}
.csharpcode.rem{color=0000 ff}
.csharpcode.kwrd{color=0000 ff}
.csharpcode.str{color=red}
.csharpcode.op{color=0000 c 0}
.csharpcode.preproc{color=red}
.csharpcode.asp{background}
.csharrpcode.html
.csharpcode.atr{color=red}
.csharpcode.alt
{
background-彩色:〹f 4 f 4;
width:100%
magin:0 em;
)
.csharpcode.lnum{color=0000 ff}
【例題一】nの階乗nを計算します.
プログラム解析 n=0の場合、n!=0;n>0の時、nn(n-1)
この方法はなかなか出られないです.
int digui(int n)
{
if(n==0) return 1;
else return n*digui(n-1)
}
.csharpcode.csharpcode pre{
font-size:small;
カラー:black
font-family:consosolas、「Courier New」、courier、monoospace;
background-カラー:菗菗ffff;
//white-space:pre;*/
)
.csharp code pre{margin:0 em;}
.csharpcode.rem{color=0000 ff}
.csharpcode.kwrd{color=0000 ff}
.csharpcode.str{color=red}
.csharpcode.op{color=0000 c 0}
.csharpcode.preproc{color=red}
.csharpcode.asp{background}
.csharrpcode.html
.csharpcode.atr{color=red}
.csharpcode.alt
{
background-彩色:〹f 4 f 4;
width:100%
magin:0 em;
)
.csharpcode.lnum{color=0000 ff}
【 】 , , 3 , , , ?
: 1,1,2,3,5,8........
:
1: public class rubbet
2: {
3: public static void main(String[] args)
4: {
5: for(int i=1;i<10;i++)
6:
7: System.out.println(" "+i+" "+f(i));
8: }
9: public static int f(int i)
10: {
11: if(i==1||i==2)
12: {
13: return i=1;
14: }
15: else
16: {
17: return f(i-1)+f(i-2);
18: }
19: }
20: }
.csharpcode.csharpcode pre{
font-size:small;
カラー:black
font-family:consosolas、「Courier New」、courier、monoospace;
background-カラー:菗菗ffff;
//white-space:pre;*/
)
.csharp code pre{margin:0 em;}
.csharpcode.rem{color=0000 ff}
.csharpcode.kwrd{color=0000 ff}
.csharpcode.str{color=red}
.csharpcode.op{color=0000 c 0}
.csharpcode.preproc{color=red}
.csharpcode.asp{background}
.csharrpcode.html
.csharpcode.atr{color=red}
.csharpcode.alt
{
background-彩色:〹f 4 f 4;
width:100%
magin:0 em;
)
.csharpcode.lnum{color=0000 ff}