zoukankan      html  css  js  c++  java
  • 汉诺塔程序

    # include "stdio.h"
    void move(char x, char y) //自定义move函数,用来将块从起始柱子x移动到目标柱子y,这里的x,y为形参,不代表具体哪根柱子
    
    {
        printf("	%c-->%c
    ",x,y);
    }
    void hannuota(int n, char a, char b, char c) //自定义hannuota函数,这里的a,b,c为形参,不代表具体哪根柱子
    
    {
        if (n == 1)
            move(a, c); //调用自定义函数move
                                                                           
        else                                                               
                                                                           
        {        
            hannuota(n-1, a, c, b);  //第一行递归
            
            move(a, c);  //调用自定义函数move
            
            hannuota(n-1, b, a, c);  //第二行递归
            
        }
    }
    
    
    int main(void)
    
    {
        int n;
        
        printf("请输入要移动的块数:
    ");
        scanf("%d", &n);
      
        hannuota(n, 'a', 'b', 'c');
        
        return 0;
    }
    /*执行详细步骤:当n = 3 时
                     n = 3           n = 2          n = 1
                    
                    |               |h(1, a, b, c)=>move(a, c)=> a->c      //1
                    |h(2, a, c, b)    |move(a, b)                  a->b      //2
                    |               |h(1, c, a, b)=>move(c, b)=> c->b      //3
                    |
    h(3, a, b, c)    |move(a, c)                                  a->c      //4
                    |
                    |               |h(1, b, c, a)=>move(b, a)=> b->a      //5                      
                    |h(2, b, a, c)    |move(b, c)                  b->c      //6
                    |               |h(1, a, b, c)=>move(a, c)=> a->c      //7
                    |
    
    执行结果:
    请输入要移动的块数:
    3
    a-->c
    a-->b
    c-->b
    a-->c
    b-->a
    b-->c
    a-->c
    */

     关于一个函数的递归调用,使用V模型,逐项深入,逐项返回,用“栈”的思路去理解;

    http://www.cnblogs.com/zhangqqqf/archive/2008/09/12/1289730.html

    两个函数的自身递归,使用"满二叉树"的模型,语句块可以逐步分解。。

    关于递归树http://hi.baidu.com/sei_zhouyu/item/e5ce9110fcdb86f09c778ab3

  • 相关阅读:
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    Chisel3
    UVa 12716 (GCD == XOR) GCD XOR
  • 原文地址:https://www.cnblogs.com/fickleness/p/3143990.html
Copyright © 2011-2022 走看看