汉诺塔 Java 递归(简单明了)

本文详细介绍了使用Java实现汉诺塔问题的递归解决方案。通过递归调用,将A柱上的n个盘子移动到C柱,演示了递归算法的简洁性和效率。代码示例清晰地展示了递归函数的定义和调用过程。

汉诺塔 Java 递归(简单明了)

代码:

import java.util.Scanner;
import java.util.prefs.BackingStoreException;


public class 汉诺塔
{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 递归求汉诺塔,A,B,C三个柱子,将A柱子的n个盘子移到C柱子上
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		char A='A';
		char B='B';
		char C='C';
		f(n, A, B, C);
	}
	//定义方法
	public static void f(int n,char A,char B,char C){
		if (n==1)
		{
			System.out.println("把第"+n+"园盘子从"+A+"柱子移到"+C+"柱子");
			return;
		}
		//重复
		//借助C柱子把A柱移到B柱
		f(n-1, A, C, B);
		//中间这一步
		System.out.println("把第"+n+"个盘子从"+A+"柱子移到"+C+"柱子");
		//借助A柱把B柱的盘子移到C柱
		f(n-1, B, A, C);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值