zoukankan      html  css  js  c++  java
  • c++之递归函数

    汉诺塔问题的递归实现。

    不得不说很复杂,想了一晚上才想通了执行的过程,不知道是哪个伟人想出来的,竟然把递归用的如此出神入化,我等望尘莫及。

     1 #include <iostream>
     2 using namespace std;
     3 #include<string>
     4 
     5 void move(char x, char y)  
     6 {  
     7      cout<<x<<"-->"<<y<<endl;  
     8 } 
     9 
    10 
    11 void f(int n,char one,char two,char three){
    12     if(n == 1){
    13         move(one,three);
    14     }else{
    15         //首先将A上的n-1个盘子借助C移动到B上,
    16         //然后将A上的最后一个大盘子移动到C上,
    17        //最后将B上的n-1个盘子借组A移动到C上
    18         f(n - 1,one,two,three);
    19         move(one,three);
    20         f(n - 1,two,one,three);
    21     }
    22 }
    23 int main(){  
    24      int m;  
    25      cout<<"输入盘子数:";  
    26      cin>>m;;  
    27      f(m,'A','B','C'); 
    28 }
  • 相关阅读:
    UVA 221
    A Typical Homework(学生信息管理系统)
    追踪电子表格中的单元格
    浮点数!!!(摘)
    poj 3158kickdown
    循环小数 UVa202
    Unix is 命令
    W
    V
    完美世界 字符串倒置输出
  • 原文地址:https://www.cnblogs.com/Smart-Du/p/4314736.html
Copyright © 2011-2022 走看看