天天看點

遞歸算法漢諾塔原理C語言

遞歸算法漢諾塔C語言

    • **遞歸算法漢諾塔原理C語言**

遞歸算法漢諾塔原理C語言

#include<stdio.h>
#include<string.h>
void move(char x,char y){
	printf("%c--%c ",x,y);
}
void hanoi(int n,char a,char b,char c){
	if(n>0){
		hanoi(n-1,a,c,b);
		move(a,b);
		hanoi(n-1,c,b,a);
	}
} 

int main(){
	int n;
	scanf("%d",&n);
	hanoi(n,'A','B','C');
	return 0; 
}
           
遞歸算法漢諾塔原理C語言

hanoi(n-1,a,c,b);表示把A柱上的n-1個圓盤由A移動到C

move(a,b)表示把A柱上最後一個圓盤由A移動到B

hanoi(n-1,c,b,a);表示把之前由A移動到C的n-1個圓盤再移動到B上去

以輸入n為3舉例

遞歸算法漢諾塔原理C語言

結果

遞歸算法漢諾塔原理C語言

繼續閱讀