C语言 用递归实现汉诺塔

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了C语言 用递归实现汉诺塔脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

运行结果截图:

C语言 用递归实现汉诺塔

 

 

C语言 用递归实现汉诺塔

 

  

C语言 用递归实现汉诺塔

 

 代码:

#include <stdio.h>void hanoi(int, char, char, char);void hanoi(int n, char x, char y, char z){    // 设置递归的结束条件为:n == 1    if(n == 1)    {        // 设置递归的输出        printf("%c --> %cn", x, z);    }    else    {        /* 汉诺塔需要递归解决的两个步骤:         * 一、x通过z移动到y         * 二、y通过x移动到z         * 在递归"递"的时候,每下一层,第一第二第三个输入位置的输入值都改变了,         * 当函数回溯到n值为1,这时开始打印第一个输入位置和第三个输入位置的实际值,         * 打印完毕后就开始"归",执行上一层函数,         * 那么又会打印第一个输入位置和第三个输入位置的值。        */        hanoi(n-1, x, z, y);        hanoi(n-1, y, x, z);        printf("%c --> %cn", x, z);    }}int main(void){    int n;    printf("请输入汉诺塔的层数:");    scanf( "%d", &n);    hanoi( n, 'x', 'y', 'z');    return 0;}

脚本宝典总结

以上是脚本宝典为你收集整理的C语言 用递归实现汉诺塔全部内容,希望文章能够帮你解决C语言 用递归实现汉诺塔所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: