---恢复内容开始---
// ①一般递归,如:求阶乘,累加。
public class Digui { /** * @author likainian 1784186573@qq.com */ public static int sum(int n) { if (n == 1) { return 1; } return sum(n - 1) * n; } public static void main(String[] args) { System.out.println(sum(5)); } }
//②递归在波菲那数列的用法
/*
* 波菲那数列:1,1,2,3,5,8,13,21...
*/
class TestFibona{ public int sum(int n){ if(n==1||n==2){ return 1; } return sum(n-1)+sum(n-2); } public static void main(String[]args){ TestFibona test=new TestFibona(); System.out.println(test.sum(24)); } }
/*练习:
*猴子吃桃问题。
*猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
*第二天早上又将剩下的桃子吃掉一半,又多吃一个。
*以后每天早上都吃了前一天剩下的一半零一个。
*到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少个桃子。
*/
class Monkey{ public int tao(int n){ if(n==10){ return 1; } return 2*(tao(n+1)+1); } public static void main(String[]args){ Monkey t=new Monkey(); int num=t.tao(1); System.out.println(num); } }
//③递归在遍历删除文件夹及其所以子文件中的用法。
import java.io.File; class TestDir3 { public static void main(String[] args) { File dir=new File("d:folder01"); listDir(dir); } private static void listDir(File dir){ //遍历所有子文件,递归调用。 File[] children=dir.listFiles(); for(File child:children){ if(child.isDirectory()){ listDir(child); }else{ child.delete(); } } dir.delete(); } }
---恢复内容结束---