汉诺塔的递推代码c语言
时间: 2023-09-17 18:13:59 浏览: 97
用c语言写的汉诺塔的程序(递归)
5星 · 资源好评率100%
当然,以下是汉诺塔的递推代码(C语言):
```c
void hanoi(int n, char A, char B, char C) {
int i = 0;
for (i = 1; i < (1 << n); ++i) {
if (i & 1) printf("%c -> %c\n", A, C);
else printf("%c -> %c\n", A, B);
if (!(i & (i - 1))) {
int pow = 1;
while ((1 << pow) <= i) ++pow;
--pow;
int tmp = (i >> (pow + 1)) << (pow + 1);
while (tmp) {
if (tmp & 1) printf("%c -> %c\n", ((i >> pow) & 1) ? B : C, ((i >> pow) & 1) ? C : B);
else printf("%c -> %c\n", A, ((i >> pow) & 1) ? B : C);
--pow, tmp >>= 1;
}
}
}
}
```
希望这能帮到你!
阅读全文