我刚刚使用递归为 C 语言中的河内塔问题编写了一个程序。但强调的是当总没有这样一个问题的复杂性时如何管理。磁盘数量类似于 4,5,方法本身的两个 TOH() 递归调用中的逻辑是什么。程序如下
#include<stdio.h>
#include<conio.h>
void TOH(int n,char x,char y,char z);
void main() {
int n;
printf("\nEnter number of plates:");
scanf("%d",&n);
TOH(n,'A','B','C');
getch();
}
void TOH(int n,char x,char y,char z) {
if(n>0)
{
TOH(n-1,x,z,y); // Recursive call 1
printf("\n%c -> %c",x,y);
TOH(n-1,z,y,x); // Recursive call 2
}
}