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' );                    //调用函数

    }

     

  • 相关阅读:
    php7 & lua 压测对比
    .NET CORE——Console中使用依赖注入
    EntityFramework Core 自动绑定模型映射
    月末总结与推书
    Dapper连接与事务的简单封装
    EntityFramework Core 学习扫盲
    从输入url到页面返回到底发生了什么
    [译]C#和.NET中的字符串
    利用C#迭代器的一个杨辉三角示例
    用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途
  • 原文地址:https://www.cnblogs.com/xiaoyajiang/p/5950384.html
Copyright © 2011-2022 走看看