C语言程序设计第四版(何钦铭、颜晖)第十章函数与程序设计之汉诺塔问题

汉诺(Hanoi)塔问题。传说印度古代某寺庙中有一个梵塔,塔内有3个座A、B和C,座A上放着64个大小不等的盘,其中大盘在下,小盘在上。有一个和尚想把这64个盘从座A搬到座B,但一次只能搬一个盘,搬动的盘只允许放在其他两个座上,且大盘不能压在小盘上。现要求用程序模拟该过程,并输出搬动步骤。

复制代码
#include<stdio.h>
void hanoi(int n,char a,char b,char c);
int main()
{
    int n;
    printf("Input the number of disk:\n");
    scanf("%d",&n);
    printf("The steps of %d disk are:\n");
    hanoi(n,'a','b','c');
	return 0;
}
void hanoi(int n,char a,char b,char c){
    if(n==1)printf("%c-->%c\n",a,b);
    else{
        hanoi(n-1,a,c,b);
        printf("%c-->%c\n",a,b);
        hanoi(n-1,c,b,a);
    }
}

输入样例:3

输出结果:

Input the number of disk:

The steps of 0 disk are:

a-->b

a-->c

b-->c

a-->b

c-->a

c-->b

a-->b

相关推荐
C羊驼2 小时前
C语言:随机数
c语言·开发语言·经验分享·笔记·算法
fengfuyao9852 小时前
CH552多功能音量调节旋钮设计与实现
c语言·开发语言
xushichao19892 小时前
实时数据压缩库
开发语言·c++·算法
minji...2 小时前
Linux 文件系统 (三) 软连接和硬链接
linux·运维·服务器·c++·算法
故事和你912 小时前
sdut-python-实验四-python序列结构(21-27)
大数据·开发语言·数据结构·python·算法
memcpy02 小时前
LeetCode 1456. 定长子串中元音的最大数目【定长滑窗模板题】中等
算法·leetcode·职场和发展
liuyao_xianhui3 小时前
优选算法_模拟_提莫攻击_C++
开发语言·c++·算法·动态规划·哈希算法·散列表
玛丽莲茼蒿3 小时前
LeetCode hot100【相交链表】【简单】
算法·leetcode·职场和发展
罗湖老棍子3 小时前
They Are Everywhere(Codeforces- P701C)
算法·滑动窗口·codeforce题解