[Java]方法递归——经典案例
生活随笔
收集整理的這篇文章主要介紹了
[Java]方法递归——经典案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java中的方法遞歸
-
方法遞歸
遞歸是一種算法,在程序設計語言中廣泛應用。
方法調用自身的形式稱為方法遞歸(recursion)。 -
遞歸的形式
直接遞歸:方法自己調用自己。
間接遞歸:方法調用其他方法,其他方法又回調方法自己。 -
方法遞歸注意事項
遞歸如果沒有控制好終止,會出現遞歸死循環,導致棧內存溢出現象。 -
遞歸算法三要素
遞歸的公式
遞歸的終結點
遞歸的方向必須走向終結點
通過一些經典案例,加深對方法遞歸的思想。
文章目錄
- Java中的方法遞歸
- 一、有規律的遞歸
- 1.求1-n的和
- 2.猴子吃桃問題
- 二、無規律的遞歸
- 啤酒問題
- 三、遞歸擴展應用
- 文件搜索
一、有規律的遞歸
1.求1-n的和
分析:
此求和問題, 計算方法 f(n) = 1 + 2 + 3 + 4 + 5 + 6 + 7 + …(n-1) + n,含有一定的規律,可總結為:
運行結果:
1-5的和為:15Process finished with exit code 02.猴子吃桃問題
分析:
整體來看,每一天都是做同一個事件,典型的規律化問題,考慮遞歸三要素:
化簡可得 f(n) = 2f(n+1) + 2
運行結果
一共有1534個桃子Process finished with exit code 0二、無規律的遞歸
啤酒問題
分析:
啤酒問題,并不是有規律的計算問題。但是,喝完之后的空瓶、蓋子又可以換啤酒,變相來看,又是有規律的計算問題。
解決此類問題,可以將空瓶、蓋子轉換為金錢問題,轉換思想,就是花錢買酒,將復雜的貨物交換,轉換為簡單統一的金錢交換問題,易于解題。
運行結果:
15瓶酒 1個瓶子 3個蓋子Process finished with exit code 0三、遞歸擴展應用
文件搜索
分析:
在對指定文件進行搜索,當我們并不知道指定文件在哪里時,搜索該文件方案是打開當前磁盤,找到所有的文件進行查找;未找到,則從第一個文件夾,一個個打卡進行查找,沒有則退出,進入下一個文件,以此類推。
運行結果
快捷鍵.md文件的絕對路徑為:E:\Java\快捷鍵.mdProcess finished with exit code 0注意:文件搜索中利用遞歸的技術,listFiles只能搜索到一級文件對象
總結
以上是生活随笔為你收集整理的[Java]方法递归——经典案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: effective c++条款11扩展—
- 下一篇: 什么是 Java 内存模型( JMM )