问题描述:
利用递归的方法解决问题。将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
如对本文有疑问, 点击进行留言回复!!
Mobilenetv3-ssd训练VOC格式数据集loss出现nan:数据本身出现问题
Android PackageManagerService(二)下载安装详解
Asp.Net Core 3.1 Web Api 返回数据字段被转换为小驼峰格式的解决办法
已知两点经纬度,计算偏移角(正北为0,顺时针为正,逆时针为负)
解决问题“Could not load file or assembly xxxxxxx or one of its dependencies”
网友评论