返回顶部

收藏

实现汉诺塔问题

更多
#include<stdio.h>
int m=0;
void move(char x,char y){
    printf("%c-->%c\\t",x,y);m++;
}
void hanoi(int n,char x,char y,char z){
    if(n==1)move(x,z);
    else{
        hanoi(n-1,x,z,y);
        move(x,z);
        hanoi(n-1,y,x,z);
    }
}
int main(){
    int n;char x,y,z;
    printf("\\n请输入A座上盘子的个数: ");
    scanf("%d",&n);
    printf("\\n移动这n个盘子的步骤为:\\n");
    hanoi(n,'A','B','C');
    printf("\\n\\n盘子总共移动%d次",m);
}
//该片段来自于http://outofmemory.cn

标签:c++,算法

收藏

0人收藏

支持

0

反对

0

发表评论