-
# include
void hannuota(int n,char a,char b, char c);
int main(void)
char ch1 = 'a';
char ch2 = 'b';
char ch3 = 'c';
int n;
printf("请输入您要移动的盘子数量");
scanf("%d",&n);
hannuota(n,'a','b','c');
return 0;
借助 B 将 A 柱上的 n 块板移动到 C 柱上,每次移动时都必须确保**板在小板下方。
最大值不能为 64
void hannuota(int n,char a,char b,char c)
如果是 1 块板。
将板直接从A列移动到C列
否则。 首先在 C 的帮助下将 A 列上的 n-1 板从 A 移动到 B
将板直接从A列移动到C列
最后,在 A 的帮助下将 B 柱上的 n-1 板从 B 移动到 C
if (1 == n)
printf("将编号为 %d 的板从 %c 列移动到 %c 列",n,a,c);
elsehannuota(n-1,a,c,b);
printf("将编号为 %d 的板从 %c 列移动到 %c 列",n,a,c);
hannuota(n-1,b,a,c);
VC++ 输出:
请输入您要移动的盘子数量:3
将编号为 1 的板从 A 列移到 C 列。
将编号为 2 的板从支柱 A 移动到支柱 B。
将编号为 1 的板从 C 列移至 B 列。
将编号为 3 的板从 A 列移至 C 列。
将编号为 1 的板从支柱 B 移动到支柱 A。
将编号为 2 的板从支柱 B 移动到支柱 C。
将编号为 1 的板从 A 列移到 C 列。
仅供参考! 呵呵。
-
void hanoi (int n; char x, char y,char z)
塔基x上直径从小到大、从上到下的N个直径从1到N的N个圆盘按规则移动到塔基z处,Y可作为辅助塔座。 */1 }
-
编译器通常会默认在 main 函数的末尾添加 return 0; 目标。
h(3,'a','b','c')
a','c','b')
h(1,'a','b','c'--输出 a -- >c
a','b'--输出 a -- >b
h(1,'c','a','b') - 输出 C - >B
move('a','c'--输出 a -- >c
b','a','c')
h(1,'b','c','a') 输出 b-->a
b','c') 输出 b-->c
h(1,'a','b','c'--输出 a -- >c
-
首先,int main()。
返回值是在函数结束时返回到主机环境的值。
int main() 返回一个整数值,void main() 返回一个 null 值。
在某些操作系统中,void main() 无效,因此通常写入 int main()。
返回值可用于确定函数的运行状况或参与操作(即函数是否正常工作)。
2)这是一个递归的应该,你必须重新推动最后的结束,才能排在你前面。这样,想法会更清晰。
第一个 awhile(leap) 条件是 leap 是否为 true(如果 leap 不是 0,则为 true,如果为 0,则为 false)。 >>>More