zoukankan      html  css  js  c++  java
  • 《hanoi(汉诺塔)问题》求解

     1 //Hanoi(汉诺)塔问题。这是一个古典的数学问题,用递归方法求解。问题如下:
     2 /*
     3     古代有一个梵塔,塔内有3个座A,B,C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。
     4     有一个老和尚想把这64个盘子从A座移动到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上
     5     都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。
     6 */
     7 #include<stdio.h>
     8 #include<stdlib.h>
     9 int main()
    10 {
    11     //对hanoi函数的声明
    12     void hanoi(int n,char one,char two,char three);
    13     int m;
    14     printf("input the number of diskes:");
    15     scanf("%d",&m);
    16     printf("The step to move %d diskes:
    ",m);
    17     hanoi(m,'A','B','C');
    18     system("pause");
    19     return 0;
    20 }
    21 //定义hanoi函数
    22 void hanoi(int n,char one ,char two,char three)    
    23 {//将n个盘从one座借助two座,移到three座
    24     void move(char x,char y);    //对move函数的声明
    25     if(n==1)
    26         move(one,three);
    27     else
    28     {
    29         hanoi(n-1,one,three,two);
    30         move(one,three);
    31         hanoi(n-1,two,one,three);
    32     }
    33 }
    34 void move(char x,char y)
    35 {
    36     printf("%c->%c
    ",x,y);
    37 }

  • 相关阅读:
    难道真的是RedBook错了?
    用一个土办法证明RedBook的错误
    Md5 Loader Demo
    simple shadow mapping
    又遇到让人疑惑的问题
    [洛谷P1037][题解]产生数
    [洛谷P1279][题解]字串距离
    [洛谷P1122][题解]最大子树和
    [洛谷P1144][题解]最短路计数
    Vue 之 Data
  • 原文地址:https://www.cnblogs.com/sun-/p/5055278.html
Copyright © 2011-2022 走看看