美文网首页
递归——汉诺塔问题

递归——汉诺塔问题

作者: psh_11 | 来源:发表于2020-04-16 23:12 被阅读0次
/*
基本思路: 只有1个盘子,从第一个柱子移动到第三个柱子

         有n个盘子
           把n-1个盘子,从第一个柱子移动到第二个柱子
         剩下的1个盘子,从第一个柱子移动到第三个柱子
           把n-1个盘子再从第二个柱子移动到第三个柱子
*/

#include <stdio.h>

void yidong(int , int , int , int );

int main(void)
{
    int n;
    printf("请输入圆盘的个数:");
    scanf("%d",&n);
    yidong(n, 1, 2, 3);
    
    return 0;
}

void yidong(int n, int one, int two, int three )
{
    if (n == 1)
        printf("从第%d个柱子移动到第%d个柱子\n", one, three);
    else
    {
        yidong(n - 1, one, three, two);
        printf("从第%d个柱子移动到第%d个柱子\n", one, three);
        yidong(n - 1, two, one, three);
    }
}

我参考了两位大佬的代码,其中一位是日本的专业程序员。比较有意思的是他出的面向要考试的群体的那本书讲了这个,后来大概卖得不好。读者有人评价太难,在后来又出了一版面向新手的书后,在递归这个问题上就轻轻带过了。

相关文章

  • 数据结构与算法-递归分治-汉诺塔思想

    折半查找算法的递归实现 思想:减少查找序列的长度,分而治之地进行关键字的查找 汉诺塔问题 汉诺塔是我们递归思想,分...

  • 数据结构算法之递归和栈结构

    递归 程序调用自身的编程技巧称为递归简单案例:n的阶乘 汉诺塔 汉诺塔问题描述:3个柱为a、b、c,圆盘最初在a柱...

  • Python 汉诺塔的实现

    汉诺塔的实现,是一个典型的递归问题,当然越是复杂的递归问题越是考验人的抽象思维; 哈哈哈,言归正传,汉诺塔问题如下...

  • 汉诺塔递归

    学习汉诺塔递归算法

  • python例子

    利用递归函数移动汉诺塔

  • 递归——汉诺塔问题

    我参考了两位大佬的代码,其中一位是日本的专业程序员。比较有意思的是他出的面向要考试的群体的那本书讲了这个,后来大概...

  • 复杂递归问题:汉诺塔

    复杂递归问题:汉诺塔 汉诺塔问题是法国数学家Edouard Lucas于1883年, 根据传说提出来的。 传说在一...

  • 算法分析与设计

    递归汉诺塔问题: https://blog.csdn.net/xb2355404/article/details/...

  • 递归之汉诺塔问题

    我的博客:递归之汉诺塔问题 一.起源: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的...

  • 2019-11-28汉诺塔算法-递归实现

    使用递归的方式实现汉诺塔

网友评论

      本文标题:递归——汉诺塔问题

      本文链接:https://www.haomeiwen.com/subject/rglcuhtx.html