返回顶部

收藏

实现汉诺塔问题

更多
#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. bystander 发表 2013-04-11 10:50:25 模板栈以及中缀表达式求值(C++实现)
  2. dianlujitao 发表 2014-10-17 13:42:33 POJ 3844 Divisible Subsequences
  3. dianlujitao 发表 2014-10-17 13:45:25 POJ 3122 Pie
  4. bystander 发表 2013-04-16 00:42:58 模板优先级队列及堆排序(C++实现)
  5. dianlujitao 发表 2014-10-17 13:52:22 POJ 2388 Who’s in the Middle
  6. abyssss 发表 2014-05-20 03:23:39 数据结构 最小堆 数组实现
  7. dianlujitao 发表 2014-10-17 13:56:48 POJ 1611 The Suspects
  8. surgesoft 发表 2014-10-28 08:01:58 LeetCode OJ: Restore IP Addresses
  9. espace 发表 2015-07-18 17:43:14 Two Sum
  10. bystander 发表 2013-05-15 10:37:24 倒水问题求解(C++)
  11. dianlujitao 发表 2014-10-17 14:11:26 POJ 1328 Radar Installation
  12. bystander 发表 2013-04-01 10:12:37 [藏]关于B树的一篇文章

发表评论