关于汉诺塔
我自己用递归写了个汉诺塔的程序,但输出总是有错,请问是为什么#include<stdio.h>
void peg(char from,char to,char mid,int n)
{
FILE *outp;
outp=fopen("d:1.txt","a+");
if (n==1)
fprintf(outp,"把第1个盘从 %c 移到 %c\n",from,to);
else
{
peg(from,mid,to,n-1);
fprintf(outp,"把第%d个盘从 %c 移到 %c\n",n,from,to);
peg(mid,to,from,n-1);
}
fclose(outp);
}
main()
{
int n;
printf("盘子的个数:");
scanf("%d",&n);
peg('A','C','B',n);
}
输出到文本的,但文本得到的记录是
把第1个盘从 A 移到 C
把第1个盘从 C 移到 B
把第2个盘从 A 移到 B
把第1个盘从 B 移到 A
把第1个盘从 A 移到 C
把第2个盘从 B 移到 C
把第3个盘从 A 移到 C
请问是为什么……谢谢