我很困惑,下面的代码是如何从此刻却是第一个叫无限不只是循环。
`public void Move(int discs, Stack<int> from, Stack<int> to, Stack<int> auxiliary)
{
if(discs > 0)
{
Move(discs - 1, from, auxiliary, to);
to.Push(from.Pop());
MovesCount++;
MoveCompleted?.Invoke(this, EventArgs.Empty);
Move(discs - 1, auxiliary, to, from);
}
}`
如何将代码曾经闯过第一移动()?
它很简单,当discs <= 0
将开始放松。
每次调用Move(discs - 1,...)
递减盘,等等等等。基本上在第一刚通过了数作为一个级别深度可变