当前位置:

首页 > 软件教程 > C语言实现汉诺塔问题的源代码

C语言实现汉诺塔问题的源代码

一个汉诺塔c语言源程序#include"stdio.h"main()voidhanoi(intn,charone,chartwo,charthree);/*声明hanoi函数*/intm;printf("请输入盘子的数量:");scanf("%d",&m);printf("Thesteptomoving%ddisks:\n",m);hanoi(m,'A','B','C');voidhanoi(intn,charone,chartwo,charthree){if(n==1){printf("Movedisk

本文目录

    一个汉诺塔c语言源程序

    #include"stdio.h"

    main()

    void hanoi(int n, char one, char two, char three); /*声明hanoi函数*/

    int m;

    printf("请输入盘子的数量:");

    scanf("%d",&m);

    printf("The step to moving %d disks:\n", m);

    hanoi(m,'A','B','C');

    void hanoi(int n, char one, char two, char three) { if (n == 1) { printf("Move disk 1 from %c to %c\n", one, three); return; } hanoi(n-1, one, three, two); printf("Move disk %d from %c to %c\n", n, one, three); hanoi(n-1, two, one, three); } 在这段代码中,我们定义了一个名为hanoi的函数,用来将n个盘子从one座借助two座,移动到three座。当n等于1时,表示只有一个盘子,直接将它从one座移动到three座即可。否则,将n-1个盘子从one

    { void move(char x,char y); /*声明了一个名为move的函数,参数类型为char类型的x和y*/

    if(n==1)

    move(one,three);

    else { hanoi(n-1,one,three,two);

    move(one,three);

    hanoi(n-1,two,one,three);

    }

    }

    void move(char x,char y)

    { printf("%c-->%c\n",x,y);}

    运行结果:一个汉诺塔c语言源程序

    不好意思,main()函数最后少了个“ } ”,忘了改过来

    还有,如果你使用的是Win-TC编译器,在最后一个printf语句之后需要添加一个getch();函数。这样可以防止程序运行完后立即关闭窗口。

    c语言汉诺塔问题

    hanoi(n-1,a,c,b); /* 第一步:将A柱上的n-1个盘子,通过借助C柱,移动到B柱上 */

    move(n,a,c); /* 第二步:将A柱底部的第n个盘子移动到C柱 */

    hanoi(n-1,a,c,b); /* 第三步:把第一步移到A的n-1个盘子借助C移动到B */

    /**********************************************************************

    * 汉诺塔是把A上的n个盘子借助B,移动到C,所以,第一步移到B的n-1个盘子,

    * 第三步需要再移到C

    ************************************************************************/

    c语言汉诺塔

    #include "stdio.h"

    void move(char x,int n,char z)

    {

    printf("第%d个盘: %c-->%c\n",n,x,z);

    }

    void hanoi(int n,char x,char y,char z)

    {

    if(n==1)

    move(x,n,z);

    else

    {

    hanoi((n-1),x,z,y);

    move(x,n,z);

    hanoi((n-1),y,x,z);

    }

    }

    void main ()

    {

    int m,i=1;

    while(i==1)

    {

    printf("请输入圆盘的个数:");

    scanf("%d",&m);

    hanoi(m,'a','b','c');

    printf("还想继续吗? 1.想 2.不想");

    scanf("%d",&i);

    }

    }

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程
    相关文章 更多
    百度地图怎么查看实时公交到站信息教程
    百度地图怎么查看实时公交到站信息教程

    进入百度地图公交查询的“查公交”或“附近实时公交”,选择正确站点、线路和方向,即可在有数据的线路查看实时到站提示。教程说明剩余站数、方案上车站信息和整段行程预计用时的区别,以及方向选错和预测延迟的处理方法。

    百度地图驾车语音包怎么更换喜欢的声音
    百度地图驾车语音包怎么更换喜欢的声音

    在百度地图语音包页面选择喜欢的声音,下载完成后点击“使用”或“立即使用”,核对目标条目显示“使用中”或设置成功提示即可。教程区分试听、下载和应用状态,并说明下载停滞、音频输出及自动切换的排查方法。

    百度地图电脑版网页端怎么规划路线
    百度地图电脑版网页端怎么规划路线

    电脑上打开百度地图网页版,选择出行方式并填写起终点,搜索后比较路线方案,再展开逐段道路明细即可完成规划。教程说明同名地点和入口核对、预计时间与距离的含义,以及网页规划和手机实时导航的区别。

    百度地图如何测量两点之间的实际距离
    百度地图如何测量两点之间的实际距离

    百度地图“测距”可读取所选两点的连线距离,实际步行或驾车里程应填写起终点并查看道路路线的公里数。教程用网页实例说明测距入口、双击结束、路线明细,以及选点、取整、绕行和出行方式对距离判断的影响。

    百度地图卫星地图怎么切换查看实景
    百度地图卫星地图怎么切换查看实景

    在百度地图电脑网页版展开地图类型,选择“地球”查看卫星影像,选择“全景”并点击覆盖道路可进入地面实拍。教程展示两类画面的切换与完成状态,并说明影像时间、全景覆盖和加载异常,避免把历史影像当成实时监控。

    百度地图足迹怎么开启并查看历史轨迹
    百度地图足迹怎么开启并查看历史轨迹

    在百度地图足迹设置中打开本地足迹记录,再进入“我的—足迹—详情”查询历史轨迹。记录与云端同步需要分别确认,开启开关不能补回从未保存的旧路线;教程说明查询分类、空结果、账号同步和定位权限的检查方法。

    百度地图离线导航怎么用才能节省手机流量
    百度地图离线导航怎么用才能节省手机流量

    百度地图要节省离线导航流量,应先在Wi-Fi下下载全国基础包和沿途离线导航数据,再试算驾车路线并核对导航状态。教程说明底图与导航包的区别、离线优先选项,以及弱网使用、数据不完整和定位异常的排查方法。

    Yandex官网入口及网页搜索使用方法
    Yandex官网入口及网页搜索使用方法

    Yandex官网入口是https://www.yondex.net/,该平台支持多语言切换、智能搜索匹配、虚拟键盘变更及实时翻译,提供地图、图片、新闻、购物等垂直服务,并具备账户同步、隐私管理、个性化首页和云存储等功能。

    腾讯会议Windows版设置虚拟背景图片完整指南
    腾讯会议Windows版设置虚拟背景图片完整指南

    面向需要在腾讯会议中隐藏真实环境的Windows用户,本文详解如何开启并自定义虚拟背景。针对背景杂乱或人物边缘抖动痛点,提供从进入“虚拟背景和美颜”设置、添加本地JPG/PNG图片、调整镜像方向到优化光线与距离的完整步骤。同时涵盖绿幕取色技巧及遇到设备不支持时的驱动更新与替代方案,帮助用户快速获得清晰的视频会议画面。

    腾讯会议Windows版主持人权限转移操作指南
    腾讯会议Windows版主持人权限转移操作指南

    面向需要在腾讯会议Windows客户端中移交管理权的用户,解决因原主持人需离场或更换管理者导致的权限交接需求。本文详解在成员管理列表中定位接任者、通过“更多”菜单执行“设为主持人”的具体步骤,并区分联席主持人与完全主持人的权限差异。同时说明操作前的身份确认要点及转移后原主持人变为普通成员的后果,帮助用户安全、准确地完成会议主导权移交。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。