国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Hanoi問題java解法

2019-11-14 15:20:38
字體:
供稿:網(wǎng)友

  用什么語(yǔ)言解法都差不多,思路都是一樣,遞歸,這其中只要注重于開始和結(jié)果的狀態(tài)就可以了,對(duì)于中間過程,并不需要深究。(我細(xì)細(xì)思考了一下,還是算了。=_=)

  代碼其實(shí)很簡(jiǎn)單注重的是思路。

  問題描述:有一個(gè)梵塔,塔內(nèi)有三個(gè)座A、B、C,A座上有諾干個(gè)盤子,盤子大小不等,大的在下,小的在上。把這些個(gè)盤子從A座移到C座,中間可以借用B座但每次只能允許移動(dòng)一個(gè)盤子,并且在移動(dòng)過程中,3個(gè)座上的盤子始終保持大盤在下,小盤在上。

  簡(jiǎn)要概括一下,每次只能移動(dòng)一個(gè)盤子,小盤子不能被大盤子壓著,源座是A、目標(biāo)座是C,過渡座是B。

  嗯,問題很明確,下面開始分析。

  我思考的過程是,先考慮一下最簡(jiǎn)單的情況,即只有一個(gè)盤子(n=1),一個(gè)盤子很好解決,A——>C即可;當(dāng)盤子數(shù)(n)為不確定的個(gè)數(shù)的時(shí)候,這時(shí)候,我們寫一個(gè)方法,將(n-1)個(gè)盤子按規(guī)則移動(dòng)到B盤,那么A盤上剩下的必然是最大的盤子,A——>C直接移動(dòng)到C盤即可;那么現(xiàn)在B盤上有(n-1)個(gè)盤子,為了讓這n-1個(gè)盤子中的最大的那個(gè)盤子移動(dòng)到C盤,我們寫一個(gè)方法將(n-2)個(gè)盤子按規(guī)則移動(dòng)到A盤,而B座上剩下(n-1)中最大的盤子,將這個(gè)盤子移動(dòng)到C盤;此時(shí)A上面有(n-2)個(gè)盤子,我們寫一個(gè)方法將(n-3)個(gè)盤子移動(dòng)到C盤...

  那么現(xiàn)在解法很明了了,后面不過是重復(fù)上訴步驟而已了,函數(shù)體沒變,只是目標(biāo)座和過渡座變化了而已。

  沒有必要去深究這中間的過程,如果從一開始去深究,n個(gè)盤子,每一個(gè)盤子的軌跡的話,那么只能是越陷越深,有時(shí)候也是要換一個(gè)角度去考慮問題。

  廢話不說了,直接上代碼:

public class hanoi {	public static void main(String[] args){		hanoi h = new hanoi();		h.move(3, 'A', 'B', 'C');	}		public void move(int n,char a,char b,char c){		if(n == 1){			System.out.

   嗯,以上。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 启东市| 鹤峰县| 新郑市| 长葛市| 保山市| 平阳县| 周宁县| 兴化市| 夏邑县| 农安县| 印江| 铜川市| 曲阳县| 双峰县| 鄄城县| 达州市| 环江| 东宁县| 响水县| 汉中市| 土默特右旗| 乌拉特后旗| 吐鲁番市| 荥阳市| 马关县| 台中县| 鸡东县| 京山县| 武功县| 喀喇| 临安市| 天长市| 诏安县| 汉寿县| 周宁县| 塔城市| 金阳县| 上杭县| 惠东县| 郴州市| 丘北县|