大家好,学习c++中遇到一个瓶颈问题
在 用递归函数解决汉诺塔问题时,源程序是 这样的
#include
using namespace std;
int k=0,n;
void mov(int n,char a,char c,char b)
{if(n==0)return;
mov(n-1,a,b,c);
k++;
cout<":from"<"->"<mov(n-1,b,c,a);
}
int main()
{cout<<"n=";
cin>>n;
mov(n,'a','c','b');
return 0;
}
这是课本上的例子
因为我搞不明白 程序在运行时内存这块是怎么运行的,于是我这样改了这样来监督参数的具体值:
#include
using namespace std;
int k=0,n;
void mov(int n,char a,char c,char b)
{if(n==0)return;
cout<"???"<"v"<mov(n-1,a,b,c);
cout<"?"<"_>"<"m"<mov(n-1,b,c,a);
cout<<"??"<int main()
{cout<<"n=";
cin>>n;
mov(n,'a','c','m');
return 0;
}
如果把参数想象成在保存在内存中的一个盒子,修改后的运行
这是人回答的还是ai回答的呀!