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

Hanoi(汉诺)塔问题-c

程序员文章站 2022-07-10 15:50:51
Hanoi问题–C语言问题描述:利用递归的方法解决问题。将A塔座上的盘子,借助B塔,最终移动到C塔上。注:每次规定只移动一个盘子,且必须大盘在下,小盘在上,在移动过程中可以利用B盘。下面展示一些“Hanoi(汉诺)塔C代码”。#includeint main(){void hanoi(int n,char one,char two,char three);//对hanoi函数进行声明int m;//定义输入的盘子个数printf("Input the n...

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