A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

小懒猫

中级黑马

  • 黑马币:52

  • 帖子:67

  • 精华:0

© 小懒猫 中级黑马   /  2017-10-22 20:44  /  703 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[Java] 纯文本查看 复制代码
import java.util.Scanner;

public class DoTower {

	public static void main(String[] args) {

		int nDisks = 0;
		System.out.print("请输入塔高:");
		Scanner scan = new Scanner(System.in);
		String read = scan.nextLine();
		try {
			nDisks = Integer.valueOf(read);
			if (nDisks < 1) {
				throw new RuntimeException();
			}
		} catch (Exception e) {
			System.out.println("请输入大于等于1的整数!");
			return;
		}
		
		int step = doTower(nDisks, 'A', 'B', 'C', 0);
		System.out.println("此次共用"+step+"步");
	}

	public static int doTower(int topN, char from, char inter, char to, int step) {
		++step;
		if (topN == 1)
			System.out.println("Disk 1: from " + from + " to " + to);
		else {
			step = doTower(topN - 1, from, to, inter, step);
			System.out.println("Disk " + topN + ": from " + from + " to " + to);
			step = doTower(topN - 1, inter, from, to, step);
		}
		return step;
	}
}

1 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马