数组的全排列
----
编写一个程序,将数组中的元素进行全排列,并输出每一种排列方式。...例如数组中的元素为{1,3,5},那么程序可以输出该数组元素的6种排列方式,分别为{1,3,5},{1,5,3},{3,1,5},{3,5,1},{5,1,3},{5,3,1}。...可以将数组全排列问题形式化定义为以下模型:
设数组
R
包含
n
个元素,定义符号
R_i=R-{r_i}
,
R_i
表示原数组
R
去掉元素
r_i
后的新数组。...提示:可将圆盘临时置于 B 杆,也可将从 A 杆移出的圆盘重新移回 A 杆,但都必须遵循上述两条规则。
问:如何移?最少要移动多少次?
----
题目分析
梵塔问题只能用递归算法来解决。...#include
//要移动的盘子数量,从from借助by移动到to
void move(int n, char from, char by, char to) {
if (n =