HANOI塔经典题目答疑!
我是个新手这是我刚刚调试了老半天的 关于汉诺塔的移动次数的题目,但还有以下的不解的问题,请各位高人指点指点
比如说int han(int n,char a,char b,char c)中的int han
int 大小是32767 但是返回值输出的数可以超过它
还有第三行的int m;我用的是全局变量
但是 我没有定义m的值,
它怎么会自动定义初始值为0呢?
如果我不用全局变量,
该怎么去编,
感谢了!!!
#include "stdio.h"
#include "stdlib.h"
int m;
int han(int n,char a,char b,char c)
{
if(n==1) m++;
else
{
han(n-1,a,c,b);
m++;
han(n-1,b,a,c);
}
return m;
}
main()
{
int q;
char a,b,c;
scanf("%d",&q);
printf("%d",han(q,a,b,c));
system("pause");
}