1. 程式人生 > >迭代與遞迴

迭代與遞迴

迭代:

int func1(int n1)
{
    if(n1>1)
           return n1+func1(n1-1);
    else
           return 1;    
}

遞迴:

int func2(int n2)
{
    int i,s=0;
    for(i=1;i<=n;i++)
        {
            s = s+i;
        }
    return s;
}

看完上邊兩個demo,是不是更不知所云 所以下面進行理論

  • 迭代

利用變數的原值推算出變數的一個新值,A不停的呼叫B

  • 遞迴

程式呼叫自身

  • 聯絡

遞迴中一定有迭代,但迭代中不一定有遞迴

大部分可相互轉換,能用迭代的不用遞迴,遞迴呼叫函式,浪費空間,而且遞迴太深的話容易造成堆疊的溢位