java汉诺塔不可逆向问题!,将A中碟子在A,B,C三个柱子无限来回放的时候,比如某个碟子刚从A放入B,再把这个碟子从B

java汉诺塔不可逆向问题!,
将A中碟子在A,B,C三个柱子无限来回放的时候,比如某个碟子刚从A放入B,再把这个碟子从B放入A就是逆向,程序如何写才能保证这逆向不发生!
意思就是我如何给这个方向做一个判定!
//从a"=>"b
public class DiGui{
public static void diGui(int n,char a,char t,char b){
if(n==1){
System.out.println(a+" "+n+"=>"+b);
}else{
diGui(n-1,a,b,t);
System.out.println(a+" "+n+"=>"+b);
diGui(n-1,t,a,b);
}
}
public static void main(String[] args){
diGui(2,'a','t','b');
}
}
上面程序很显然System.out.println(a+" "+n+"=>"+b);做了一个指向,那么假设我们不知道这个放法的方向,怎么给这方向下定义呢?言下之意就是a中的盘子乱放,只要符合栈道(大在下,先进后出)!方法不对再返回重新递归!
pennyhardway 1年前 已收到1个回答 举报

ll中的普普 幼苗

共回答了18个问题采纳率:94.4% 举报

public class J_Hanoi
{
public static void mb_hanoi(int n, char start, char temp, char end)
{
if (n

1年前 追问

6

pennyhardway 举报

你写的跟我写的一样,我意思是不知道从哪个方向移,而随意移应该怎么写?

举报 ll中的普普

递归函数 的时候 里面的参数的 顺序 本身就 限制 了啊

pennyhardway 举报

递归的无序性!
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.026 s. - webmaster@yulucn.com