倒霉的菜鸟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 public class RecursionTest {
 2 
 3     
 4     /**
 5      * 求n的阶乘
 6      */
 7     private static int jiecheng(int n) {
 8         if (n==1) {
 9             return 1;
10         }
11         return n*jiecheng(n-1);
12     }
13     
14     /**
15      * 1 1 2 3 5 8 13 21 34 55 89 144
16      * 求斐波那契数列的第N项
17      * @param n
18      * @return
19      */
20     private static int feibonaqi(int n) {
21         if(n==1 || n==2) {
22             return 1;
23         }else {
24             return feibonaqi(n-1)+feibonaqi(n-2);
25         }
26     }
27     
28     /**
29      * 汉诺塔问题
30      * @param n 一共有N个盘子
31      * @param start 初始位置
32      * @param middle 中介
33      * @param end 目标位置
34      */
35     private static void hanota(int n, String start, String middle, String end) {
36         if (n==1) {
37             System.out.println("move from "+start+" to "+end);
38         }else {
39             hanota(n-1, start, end, middle);
40             System.out.println("move from "+start+" to "+end);
41             hanota(n-1, middle, start, end);
42         }
43     }
44      
45     
46     public static void main(String[] args) {
47         System.out.println(jiecheng(5));
48         System.out.println(feibonaqi(5));
49         System.out.println(feibonaqi(30));
50         hanota(7, "left", "middle", "right");
51     }
52 }

 

posted on 2021-10-06 20:25  倒霉的菜鸟  阅读(55)  评论(0编辑  收藏  举报