溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

漢諾塔問題c語言實現(xiàn)

發(fā)布時間:2020-07-23 02:46:22 來源:網(wǎng)絡(luò) 閱讀:531 作者:dlb15736130376 欄目:編程語言
#include<stdio.h>
//漢諾塔問題
void hannuota(int n,char a,char b,char c);
int main(void){
	char ch2 = 'A';
	char ch3 = 'B';
	char ch4 = 'C';
	int n = 0;
	printf("請輸入要移動的盤子的個數(shù):");
	scanf("%d",&n);
	hannuota(n,ch2,ch3,ch4);
	return 0;
}
/*
	如果是一個盤子
		直接將A柱子上的盤子 從A移到C
	否則
		先A柱子上的n-1個盤子借助C移到B
		再將A柱子上的最后一個盤子從A移到C
		然后將B柱子上的n-1個盤子借助A移到C
*/

//將盤子從a借助b移到c
void hannuota(int n,char a,char b,char c){
	if(n == 1){
		printf("將編號%d盤子從%c移到%c\n",n,a,c);
	}else{
		//先A柱子上的n-1個盤子借助C移到B
		hannuota(n-1,a,c,b);
		//再將A柱子上的最后一個盤子從A移到C
		printf("將編號%d盤子從%c移到%c\n",n,a,c);
		//然后將B柱子上的n-1個盤子借助A移到C
		hannuota(n-1,b,a,c);
	}
}


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI