C 递归

Posted pam-sh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 递归相关的知识,希望对你有一定的参考价值。

汉诺塔:

技术图片

 移动规则:

技术图片

分析:

move函数是一个递归函数,功能是:把x上n个圆盘移动到z上

代码:

#include <stdio.h>
#include <stdlib.h>

// 汉诺塔递归
void main()
{
    int i,n;
    printf("请指定有几层:
");
    scanf("%d",&n);
    printf("有%d层,移动过程如下:
",n);
    move(n,‘A‘,‘B‘,‘C‘);
}

void move(int n,char x,char y,char z)
{
    if(n < 0)
        printf("输入错误,不成立!");
    else if(n == 1)
        printf("%c——>%c
",x,z);
    else
    {
        move(n - 1,x,z,y);
        printf("%c——>%c
",x,z);
        move(n - 1,y,x,z);
    }
}
技术图片

以上是关于C 递归的主要内容,如果未能解决你的问题,请参考以下文章

Java基础之方法的调用重载以及简单的递归

CSP核心代码片段记录

Java 基础语法方法的使用

executePendingTransactions 的递归入口

nodejs常用代码片段

JavaScript 代码片段