java遞迴的乙個問題

2021-09-01 03:08:22 字數 958 閱讀 4068

據說比達格斯理論家,又稱一群在必達格斯領導下工作的古希臘數學家,發現在數字序列

1,3,6,10,15,21 中有奇怪的聯絡

這個數列中第n項由第n-1項加n得到的。

效率問題

呼叫乙個方法會有一定的額外開銷。控制必須從這個呼叫的位子轉移到這個方法的開始處。除次之外,傳給這個方法的引數以及

這個方法返回的位址都要黑壓入到乙個內部的棧中。為的是這個方法可以訪問引數值。知道返回到**去。

就這個問題來說,因為上述開銷造成的結構,可能while方法執行速度比遞迴快。在此題中,遞迴的

代價是不大的。但是如果由於遞迴的存在,造成了太大規模的方法呼叫外,科恩能夠會考慮消除遞迴。

另外乙個低效率在系統記憶體空間儲存所有的中間引數以及返回值,如果有大量的資料需要儲存,這就會引起棧溢位了

人們常常採用遞迴,是因為它從概念上簡化了問題,而不是因為它本質上更加有效。

package endual;

public class ********question

return result ; }

/*** 使用遞迴來求解這個問題

* @param n

* @return

*/public static int computedigui(int n)

return rs ; }

/*** 使用遞迴來求解這個問題

* @param n

* @return

*/public static int computedigui2(int n)

return n + ********question.computedigui(n-1);

} // end

}

測試類

package endual;

public class main

}

java 遞迴的乙個問題記錄

問題 第一行是乙個數字n 接下來m個數字在陣列a中 要求輸出對應下標使去掉這些數字時剩下的數字之和為n 例如 3 2 4 3 1 此時,程式輸出 0 20 3 4 1 2 4 2 3 如下 public class main public static void main string args b...

乙個遞迴問題

created by baicai on 14 5 10.遞迴問題 遞迴中兩個重要的點 1.遞迴公式 2.終止條件 函式的區域性變數存在棧中,可能會棧溢位,所以可以考慮使用全域性陣列,或者動態分配陣列 遊戲問題 類似迷宮求解,自相似性表現在每走一步的探測方式相同,可以用遞迴方法求解,通過列舉出所有從...

關於java執行緒的乙個問題

最近在寫乙個程式.其中就遇到了這樣乙個問題.我希望實現兩個或多個執行緒,而這些執行緒的順序是 thread thread 2,5,main a 這是執行緒2呼叫b時列印出的 thread thread 3,5,main a 這是執行緒3呼叫b時列印出的 上面的順序是我所希望的.但往往會是這樣的結果 ...