• 汉诺塔问题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' );                    //调用函数

    }

     

  • 相关阅读:
    ES6——>let,箭头函数,this指向小记
    伪元素与伪类的简单介绍
    CSS font-size: 0去除内联元素空白间隙
    python学习笔记1
    一个兼容IE7IE8,H5的多功能视频播放器,H5视频播放器兼容Flash视频播放器
    【数据结构】空间使用
    Matlab计算自相关和互相关
    Matlab计算两个信号的互能量
    Matlab求信号的功率和能量
    Matlab傅氏变换
  • 原文地址:https://www.cnblogs.com/xiaoyajiang/p/5950384.html
Copyright © 2020-2023  润新知