古代某寺庙中有一个梵塔,塔内有3个座A、B和C,座A上放着64个大小不等的盘,其中大盘在下,小盘在上。有一个和尚想把这64 个盘从座A搬到座B,但一次只能搬一个盘,搬动的盘只允许放在其他两个座上,且大盘不能压在小盘上。现要求用程序模拟该过程,输入一个正整数n,代表盘子的个数,编写函数 void hanoi(int n,char a,char b,char c) 其中,n为盘子个数,从a座到b座,c座作为中间过渡,该函数的功能是输出搬盘子的路径。 输入格式: 输入在一行中给出1个正整数n。 输出格式: 输出搬动盘子路径。 输入样例: 3 输出样例: a-->b a-->c b-->c a-->b c-->a c-->b a-->b
时间: 2024-03-02 14:52:10 浏览: 107
人工智能-A星搜索(Java)-二阶汉塔(梵塔)问题.zip
5星 · 资源好评率100%
好的,以下是一个递归实现的汉诺塔问题解法的代码(使用了Python语言):
```python
def hanoi(n, a, b, c):
if n == 1:
print(a, '-->', c)
else:
hanoi(n-1, a, c, b) # 将前n-1个盘子从a座借助c座移动到b座
print(a, '-->', c) # 将最后一个盘子从a座移动到c座
hanoi(n-1, b, a, c) # 将前n-1个盘子从b座借助a座移动到c座
n = int(input('请输入盘子的个数:'))
hanoi(n, 'a', 'b', 'c')
```
运行结果将会输出搬动盘子的路径。
阅读全文