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

    }

     

  • 相关阅读:
    CentOS linux系统搭建LAMP环境
    网站跳出率高的优化方案
    IT痴汉的工作现状24-Just for fun
    windows下远程连接ubantu
    Hibernate基础映射
    我院同学在2013年第四届“蓝桥杯”全国软件专业人才设计与创业大赛全国总决赛中获得佳绩
    Linux下打开串口设置
    zoj 3261 Connections in Galaxy War
    Android之startActivityForResult的使用
    当心Azure跨区域数据传输产生额外费用
  • 原文地址:https://www.cnblogs.com/xiaoyajiang/p/5950384.html
Copyright © 2011-2022 走看看