码迷,mamicode.com
首页 > 其他好文 > 详细

课后作业2:递归编程解决汉诺塔问题

时间:2017-10-13 23:46:07      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:问题   move   调用   ext   java   bsp   system   ==   设计   

【程序设计思想】

          将A座上盘子移到C座上,实现的操作:1,将A座上除最下面其余盘子移到B座上2,将A座上一个盘子移到C座上3,将B座上盘子移到C座上。

          分别用两个函数实现两类操作,用hanio函数实现第一类操作,用move函数实现第2类操作,函数调用hanio(n,one,two,three)表示将n个盘子从“one”座移到“three”座的过程。函数调用move(x,y)表示将一个盘子从x座移到y座的过程。

【程序流程图】

技术分享

 

【源代码】

//那颖 信1605-2班 20163448
import java.util.Scanner;
public class Hanoi
{
public static void main(String[] args)
{
System.out.println("please input m:");
Scanner input=new Scanner(System.in);
int m=input.nextInt();
hanio(m,‘A‘,‘B‘,‘C‘);

}

public static void move(char x,char y)
{
System.out.println(x+"->"+y);
}

public static void hanio(int n,char one,char two,char three)
{
if(n==1)
move(one,three);
else
{
hanio(n-1,one,three,two);
move(one,three);
hanio(n-1,two,one,three);
}

}
}

【运行结果截图】

技术分享

课后作业2:递归编程解决汉诺塔问题

标签:问题   move   调用   ext   java   bsp   system   ==   设计   

原文地址:http://www.cnblogs.com/-2016/p/7663491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!