用java写了一个汉诺塔
生活随笔
收集整理的這篇文章主要介紹了
用java写了一个汉诺塔
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
package com.brzhang;/*** 漢諾塔* 開(kāi)始盤(pán)子全部都放在第一根柱子上* 目的:將第一根柱子上的盤(pán)子全部移動(dòng)到第三根柱子上,規(guī)則是不能編號(hào)較大的盤(pán)子放在編號(hào)交小的盤(pán)子上面。**/
public class HanoTa {private long steps = 1l;/**** @param n 盤(pán)子個(gè)數(shù)* @param from 第一根柱子* @param assist 第二根柱子* @param to 第三根柱子*/public void hannota(int n,char from ,char assist,char to){if(n == 1){move(n,from,to);}else{//將上面的n-1個(gè)盤(pán)子從from柱子移動(dòng)到assist柱子,借助to柱子hannota(n-1,from,to,assist);//將最低下的盤(pán)子從from柱子移動(dòng)到to柱子move(n,from,to);//將其余的n-1個(gè)盤(pán)子從assite柱子移動(dòng)到to柱子借助from柱子hannota(n-1,assist,from,to);}}/*** 移動(dòng)盤(pán)子,從from移動(dòng)到to借助assite** @param from* @param to*/public void move(int n,char from,char to){System.out.printf("steps " +(steps++) +" move [pantzi "+n+ "] from "+from+" to "+to+"\n");}public static void main(String[] args) {new HanoTa().hannota(10,'A','B','C');}
}
總結(jié)
以上是生活随笔為你收集整理的用java写了一个汉诺塔的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ***Redis hash是一个stri
- 下一篇: ARM立即数讲解--LDR和MOV的区别