返回顶部

收藏

实现汉诺塔问题

更多
#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. 2014-06-28 11:53:37全排列的算法 by lucasli
  2. 2014-07-03 12:55:34K-MEANS算法 by niutao.linux
  3. 2014-07-22 10:12:32C++算法之基数排序 by lucasli
  4. 2014-08-15 10:57:00深度优先遍历 by 灵剑子
  5. 2014-10-01 10:37:01数据结构 循环队列 by lucasli
  6. 2014-10-10 11:56:28单因素方差分析 by aiheng1988
  7. 2014-11-11 09:13:14C++算法之寻找丢失的数 by 灵剑子
  8. 2014-11-14 21:16:55完美因数 by Kevin.
  9. 2014-11-21 10:49:17线性表之不带头结点的双向循环链表 by 童学芬
  10. 2013-10-14 12:14:16C++ KMP算法实现字符串搜索 by 蟋蟀哥
  11. 2014-03-07 18:39:50C++算法之prim算法详解 by 千万不要郁闷

发表评论