当前位置: 移动技术网 > IT编程>开发语言>.net > Hanoi(汉诺)塔问题-c

Hanoi(汉诺)塔问题-c

2020年07月15日  | 移动技术网IT编程  | 我要评论

Hanoi问题–C语言

问题描述:
利用递归的方法解决问题。将A塔座上的盘子,借助B塔,最终移动到C塔上。注:每次规定只移动一个盘子,且必须大盘在下,小盘在上,在移动过程中可以利用B盘。

下面展示一些“Hanoi(汉诺)塔C代码”。

#include<stdio.h>
int main()
{
	void hanoi(int n,char one,char two,char three);//对hanoi函数进行声明
	int m;//定义输入的盘子个数
	printf("Input the number of diskes:");//提示输入盘子个数
	scanf("%d\n",&m);//输入盘子个数
	printf("The step move %d diskes\n",m);
	hanoi(m,'A','B','C');//调用hanoi函数
	return 0;
}

void hanoi(int n,char one,char two,char three)//定义hanoi函数
{
	void move(char x,char y);//声明move函数
	if(n==1)//如果只有一个盘子,直接将移动到a上
		move(one,three);
	else
	{
		hanoi(n-1,one,three,two);//否则反复进行递归,调用hanoi函数
		move(one,three);
		hanoi(n-1,two,one,three);
	}

}

void move(char x,char y)//定义move函数
{
	printf("%c-->%c\n",x,y);
}

本文地址:https://blog.csdn.net/weixin_45932572/article/details/107345102

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网