我们一提到汉诺塔问题 就知道要用递归来解决,但是,我们并不知道为什么要用递归。 接下来,我们就分析一下汉诺塔问题。
class Solution {
public:
void algorithm(vector<int>& x, vector<int>& y, vector<int>& z,int n)
{
if(n==1)
{
z.push_back(x.back());
x.pop_back();
return ;
}
algorithm(x,z,y,n-1);
z.push_back(x.back());
x.pop_back();
algorithm(y,x,z,n-1);
}
void hanota(vector<int>& A, vector<int>& B, vector<int>& C)
{
algorithm(A,B,C,A.size());
return ;
}
};