當前位置:編程學習大全網 - 編程軟體 - 計算機算法中的叠代和遞歸是什麽意思?兩者有什麽區別?

計算機算法中的叠代和遞歸是什麽意思?兩者有什麽區別?

比如:我想求1+2+3+4+的值...+100.

叠代法:從1到100,向下累加。1+2=3,3+3=6,6+4=10,10+5=15……

程序說,

int i=1,sum = 0;

while(我& lt=100){

sum = sum+I;

}

遞歸練習:我要求累計值從1到100。如果我已經得到了從1到99的累計值,那麽將這個值加到100上就得到從1到100的累計值。要獲得1到99的累積值,如果已經獲得1到98的累積值,則將99加到這個值上,這就是1到99的累積值...最後想得到1到2的累計值。如果我得到的累計值是1,我可以加2,1就夠了。所以現在我們得到1到2的累計值,把這個值加到3得到1到3的累計值,…最後得到1到100的累計值。

程序表示是遞歸方法的壹個典型特征,在程序表示中,函數調用自身。

int GetSum(int n)

{

如果(n & lt=0)返回0;

else返回n+GetSum(n-1);

}

在上面的例子中,實際上遞歸的最終結果也是用叠代法完成的,只是在程序的處理中並不直接可見。兩者都能很好地完成計算任務,區別在於思維方式,導致計算方法不同:叠代是正向思維,從頭到尾思考問題;遞歸是逆向思維。他假設我們已經得到了壹些結果(假設我已經知道了1到99的累計值,把這個值加到100上,我們得到了1到100的累計值),從尾部壹直追溯到頭部,從而簡化了問題(當然這個例子並不明顯,這裏只是為了便於理解,有興趣可以參考壹下)。

  • 上一篇:IBM 老臺式機主板 BIOS 中英文對照及優化設置
  • 下一篇:C語言的源代碼是什麽意思啊
  • copyright 2024編程學習大全網