欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据结构----递归算法(汉诺塔)

程序员文章站 2024-03-16 16:05:46
...
/*
	汉诺塔问题 
*/

#include <stdio.h>

void Towers(int n, char A, char B, char C){
	if(n==1){	//递归出口 
		printf("%s%c%s%c\n\n","移动盘 1 从 ",
				A," 到盘 ",C);
		return;
	}
	//把n-1个盘从A盘借助B盘移动到C盘 
	Towers(n-1,A,C,B);
	
	//把圆盘n从A盘直接移动到C盘 
	 printf("%s%d%s%c%s%c\n\n","移动盘 ",n,
	 		" 从盘 ",A," 到盘 ",B);
	 
	 ///把n-1个盘从C盘借助A盘移动到B盘 
	 Towers(n-1,C,B,A);
}

void main(void){
	Towers(4,'A','C','B');
	getch();
}

相关标签: 数据结构