zoukankan      html  css  js  c++  java
  • 汉诺塔问题C++实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang

    以下进行汉诺塔问题的递归实现

    #include <iostream.h>

    int gbsx( char & L, char & R  )    //改变顺序的函数

    {  char T ;

           T= L ;

           L= R ;

           R= T ;

           return0 ;

    }

     

    void move( int n , char a , char b , char c)      //汉诺塔核心函数

    {  

           if( n == 1 )

           {  

                  cout<< "移动"<< a  << "" << c << endl ;

           }

           else

           {   gbsx( b , c );                    //改变后面两个的顺序

         move( n - 1 , a , b , c );                //用递归实现其步骤

          

               gbsx( b , c );                    //把后面那两个的顺序换回来

           move( 1 , a , b , c);

          

           gbsx(a , b );                       //改变前面两个的顺序

           move(n - 1 , a , b , c );               //用递归实现其步骤

           }

          

    }

     

    int sum( int n )                         //用来计算步骤数的函数

    {

           ints = 1 ;

           for(int i = 1 ; i <= n ; i++ )

       {   

                  s= s*2 ;

           }

           returns-1 ;

    }

     

    void main()                            //主函数

    {  int n = 1 ;

           cout<< "请输入您所放的盘子数目"<< endl ;          

           cin>> n ;                                //通过输入的值赋给n来实现

           cout<<  "共有" << sum ( n ) <<","<< "步骤为"<< endl ;

       move( n , 'A' , 'B' , 'C' );                    //调用函数

    }

     

  • 相关阅读:
    【转载】stm32的GPIO八种工作模式
    常用数字滤波算法总结
    ST-LINK使用注意
    【转载】深入理解嵌入式开发
    【stm32中断优先级--珍藏版】
    对飞控的理解(一)
    【转载】c语言数据的左移右移
    四轴之第一炸
    linux下查看隐藏文件
    Jetson TK1 五:移植工控机程序到板上
  • 原文地址:https://www.cnblogs.com/xiaoyajiang/p/5950384.html
Copyright © 2011-2022 走看看