Java递归算法

Java递归算法

1、什么是递归算法

 就是在方法内部调用方法自己本身

2、案例

案例1:斐波那契数列

菲波那契数列指的是这样一个数列:
1,1,2,3,5,8,13,21,34,55,89,144…
分析:这个数列从第三项开始,每一项都等于前两项之和

参考代码:

  import java.util.Scanner;
        public class Fbnq_shulie {
    	    public static void main(String[] args) {
    		
    		    Scanner s = new Scanner(System.in);
    		    int n =s.nextInt();
    		
    		    System.out.println("斐波那契数列的第"+n+"位元素是:"+feibo(n));
    
    	    }
    	    public static int feibo(int n){
    		    if(n == 1){
    			    return 1;
    		    }
    		    if(n == 2){
    			    return 1;
    		    }
    		    return feibo(n-1)+feibo(n-2);
    	    }
        }

运行结果:
在这里插入图片描述

案例2:汉诺塔问题

输入一个正整数n,表示有n个盘片在第一根柱子上。输出操作序列,格式为“移动 t从 x 到 y”。每个操作一行,表示把x柱子上的编号为t的盘片挪到柱子y上。柱子编号为A,B,C,你要用最少的操作把所有的盘子从A柱子上转移到C柱子上。

参考代码:

  public class hannuota {

	    public static void main(String[] args) {
		    int i = 4;
		    char a = 'A', b = 'B', c = 'C';
		    hanio(i, a, b, c);
	    }

	    public static void hanio(int n, char a, char b, char c) {
		    if (n == 1)
			    System.out.println("移动" + n + "号盘子从" + a + "到" + c);
		    else {
			    hanio(n - 1, a, c, b);// 把上面n-1个盘子从a借助b搬到c
			    System.out.println("移动" + n + "号盘子从" + a + "到" + c);// 紧接着直接把n搬动c
			    hanio(n - 1, b, a, c);// 再把b上的n-1个盘子借助a搬到c
		    }
	    }

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值