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