实验五 汉诺塔问题的程序设计

实验名称

实验五 汉诺塔问题的程序设计

实验目的

(1)掌握递归的有关概念;
(2)掌握汉诺塔问题的具体求解过程;
(3)在掌握的基础上编程实现汉诺塔的具体实现过程。

实验题目

在A上有按大小排序好的n个金碟,借助B的帮助,将A上的碟子移动到C上,在移动的过程中要严格按照大小顺序,不能将碟子放在比它小的上面,输出结果,输出时要求有文字说明。请任选一种语言编写程序实现上述算法,并分析其算法复杂度。

实验源代码

#include <stdio.h> 

void solve(int num,char z1,char z2,char z3);

int main() {
	int n;
	printf("请输入盘子数量:");
	scanf("%d",&n);
	solve(n,'A','B','C');
}

void solve(int num,char z1,char z2,char z3) {
	if(num>0) {
	solve(num-1,z1,z3,z2);
	printf("把%c上的盘子移到%c上\n",z1,z3);
	solve(num-1,z2,z1,z3);
	}
}

实验结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写bug如流水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值