问题描述:
对于输入的n的盘子,输出Hanoi塔的步骤或者是最小步数。
问题分析:
太简单了,不分析了,直接看代码。简洁明了
Hanoi塔问题
#include<cstdio> void Hanoi(int n,char a,char b,char c) {
if(n) {
Hanoi(n-1,a,c,b);//现将n-1个盘子通过c移到b上 printf("%c - %c\n",a,c);//再将最后一个盘子移到c上 Hanoi(n-1,b,a,c); //最后把b上的n-1个盘子通过a移到c上 } } int main () {
int n;//Hanoi的最小步数为2^n^-1步 char column[3]= {
'A','B','C'}; scanf("%d",&n); Hanoi(n,column[0],column[1],column[2]);//n个盘子从a通过b移到c return 0; }
运算结果:

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214981.html原文链接:https://javaforall.net
