脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。