返回顶部

收藏

实现汉诺塔问题

更多
#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

»更多 您可能感兴趣的代码
  1. 2012-11-19 13:11:28c++实现两点最短路径 Dijkstra 算法 by Smile_love
  2. 2014-04-08 21:47:16每对结点之间最短路径的C++实现 by Kevin.
  3. 2014-05-16 11:35:31使用数组的方式来保存二叉树 by 灵剑子
  4. 2014-05-19 14:37:44回溯法解八皇后问题 by walker30
  5. 2014-05-28 12:39:10Shell 排序法 by lucasli
  6. 2014-07-03 11:25:16二叉查找树 by 灵剑子
  7. 2014-07-13 12:20:57数据结构 14种排序 by 童学芬
  8. 2014-07-21 12:14:32回溯八皇后 by 灵剑子
  9. 2014-07-27 11:26:07快速计算平方根倒数(卡马克函数) by sxgkwei
  10. 2014-08-01 11:01:49斐波纳契数列 by 童学芬
  11. 2014-08-07 12:44:25银行家算法 by 跳跳虎

发表评论