迭代和遞迴的差別與作用以及理解

2021-08-08 23:18:31 字數 1040 閱讀 1296

//die dai

// 迭 代:

int 迭代(int n) // n = 6

//s = 720

return s;

}//迭代-總結:

//這裡怎麼看出來要迭代什麼呢?

//注意s這個變數,它一直是以自己或自己的"後代",也就是自己的下一代去跟其他數值"進化".

//int s = 1; 祖先s_ⅰ代

//s = 1 * 1 祖先s_ⅰ代-進化

//s = 1 * 2 s_ⅱ代-進化 祖先s_ⅰ代-死去

//s = 2 * 3 s_ⅲ代-進化 s_ⅱ代-死去

//s = 6 * 4 s_ⅳ代-進化 s_ⅲ代-死去

//s = 24 * 5 s_ⅴ代-進化 s_ⅳ代-死去

//s = 120 * 6 s_ⅵ代-進化 s_ⅴ代-死去

//最後只剩下 s_ⅵ代!

//遞迴:

int 遞迴(int n) // n = 6

//n = 1 2 3 4 5 6

//s = 1 2 6 24 120 720

return s;

//這裡要是return n;那麼n是幾呢?答案是6

}//遞迴-總結:

//這裡怎麼看出來s沒有"迭代"呢?

//很簡單,因為此函式區域性變數s,即不是靜態區域性變數,也不是全域性變數.

//所以此函式會生成6個n和s一共12個的變數單獨用於計算.

//再回頭看看"迭代"函式裡 s,n 都是維一的,再加個 i 也是維一的,一共只有3個變數.

//要點:從遞迴函式被呼叫的那一刻起,後面的過程全都是從"最內層"(最後一次)開始算.

//遞迴_迭代:

int 遞迴_迭代(int n) // n = 6

//s = 720

return s;

}//遞迴_迭代-總結:

//融合兩種特性,瞎發揮一下!

call 和 apply 的作用以及區別

語法 obj 這個物件將代替function類裡this物件 args 這個是陣列,它將作為引數傳給function args arguments function.call obj,param1 param2 paramn obj 這個物件將代替function類裡this物件 params 這個...

DNS遞迴查詢和迭代查詢的差別

遞迴查詢和迭代查詢的差別 1 遞迴查詢 遞迴查詢是一種dns server的查詢模式,在該模式下dns server接收到客戶機請求。必須使用乙個準確的查詢結果回覆客戶機。假設dns server本地沒有儲存查詢dns 資訊,那麼該server會詢問其它server。並將返回的查詢結果提交給客戶機。...

遞迴與迭代的g區別以及例項

遞迴,即函式不斷地自己呼叫自己。其原理在於把乙個大型的複雜的問題轉化為乙個與原問題相似的規模較小的問題來解決。解決過程分為兩個階段 1.遞推 把複雜的問題的求解推到比原問題簡單一些的問題的求解 2.回歸 將獲得的最簡單的問題所對應的解決方案,逐步返回,依次得到複雜的解。迭代,即乙個函式不斷地呼叫另乙...