zoukankan      html  css  js  c++  java
  • 基本递归(2)汉诺塔

    **本题来自科创网**

    #include<iostream>
    using namespace std;
    
    int read()//输入函数,用于获取输入的数字(包括两位数和三位数等) 
    {
      int x=0,f=1;char ch=getchar();
      while(ch<'0'||ch>'9')
      {
        if(ch=='-')
        f=-1;
        ch=getchar();
      }
      while(ch>='0'&&ch<='9')
      {
        x=x*10+ch-'0';
        ch=getchar();
      }
      return x*f;
    }
    int n,m,nthstep=0;//n是有多少个盘子,m是第几步,nthstep表示现在已到了第几步 
    void move(int n,char a,char c,char b)//移动函数将B柱充当过渡柱,将A柱上的n片移动到C柱上 
    {
      //move函数为递归 
      if(n==0)
      return ;//如果盘子被移完了,就结束程序 
      move(n-1,a,b,c);//先将A柱上前n-1个盘子移到B柱上,将C柱充当过渡柱 
      nthstep++;
      if(nthstep==m)//到达了第m步输出结果,结束程序 
      {
        cout<<a<<"-->"<<c;
        exit(0);//break只能用于循环或分支语句
        //exit是在调用处强行退出程序,运行一次程序就结束 
      }
      move(n-1,b,c,a);//将A柱作为过渡柱,将B柱上的n-1个盘子移到C柱上 
      return ;//结束 
    }
    int main( )
    {
      n=read();
      m=read();
      //cin>>n>>m;
      move(n,'A','C','B');//将B柱充当过渡柱,将A柱上的n片移动到C柱上 
      return 0;
    }

    原题:http://oj.kechuangedu.com/oj/home/problem.htm?problemID=768

  • 相关阅读:
    flash 语法 入门
    flash 代码 雪花飘落
    test windows live writer
    网站索引
    [转]jquery入门简介
    forcast iframe 及 四款播放器
    flash
    flash 备忘
    浏览器默认HTML的CSS样式属性
    简单多线程拷贝单文件示例
  • 原文地址:https://www.cnblogs.com/6666junyiliu/p/5975336.html
Copyright © 2011-2022 走看看