java---递归
一、什么是递归?
首先是直接或间接的调用自身方法,它的作用是实现循环,在这块有个典型的汉诺塔案例
二、实现递归需要具备三个条件:
1、小规模问题解决了,大规模问题就很容易解决了;
2、小规模问题解决方法和大规模问题解决方法相同;
3、当规模小到一定程序,则问题自然解决。
三、案例:计算阶乘:
public class diguianli { static int factor(int n){//计算阶乘 if(n == 1){ return 1; } return factor(n - 1)* n; } public static void main(String[] args) { System.out.println(factor(8)); } }
四、猴子吃桃:
public class Monkey { static int monkey(int day){ if(day == 10) return 1; return (monkey(day+1)+1) *2; } public static void main(String[] args) { System.out.println(monkey(1)); } }
五、汉诺塔:
public class Hanoi { static void hanoi(int n,char from,char cross,char to) { if (n == 1) { System.out.println(n + ":" + from + "-------->" + to); } else { hanoi(n - 1, from, to, cross); System.out.println(n + ":" + from + "-------->" + to); hanoi(n - 1, cross, from, to); } } public static void main(String[] args) { hanoi(4,'A','B','C'); } }
本文来自博客园,作者:LXXXXxZz,转载请注明原文链接:https://www.cnblogs.com/l11111/p/16329132.html