- 3
- 0
- 约7.84千字
- 约 22页
- 2026-01-11 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年IT公司面试宝典:软件开发工程师面试题及答案
一、编程语言与数据结构(共5题,每题10分,总分50分)
1.题目:
请用Python实现一个函数,输入一个非负整数`n`,返回`n`的汉诺塔移动步骤(使用列表存储每一步的移动顺序,例如:`[(A,C),(A,B),(C,B)]`)。
答案:
python
defhanoi(n,source,target,auxiliary):
ifn==1:
return[(source,target)]
else:
moves=[]
moves.extend(hanoi(n-1,source,auxiliary,target))
moves.append((source,target))
moves.extend(hanoi(n-1,auxiliary,target,source))
returnmoves
示例调用
print(hanoi(3,A,C,B))
输出:[(A,C),(A,B),(C,B),(A,C),(B,A),(C,B),(A,C)]
解析:
汉诺塔问题采用递归解法,将`n-1`个盘子从源柱子移动到辅助柱子,再移动最大的盘子到目标柱子,最后将`n-1`个盘子从辅助柱子移动到目标柱子。每一步的移
原创力文档

文档评论(0)