当我发现河内塔这个不寻常的迭代解决scheme时,我迷失在互联网上: for (int x = 1; x < (1 << nDisks); x++) { FromPole = (x & x-1) % 3; ToPole = ((x | x-1) + 1) % 3; moveDisk(FromPole, ToPole); } 这篇文章也有类似的Delphi代码中的一个答案。 然而,对于我的生活,我似乎无法find一个好的解释,为什么这个工程。 任何人都可以帮我理解吗?