汉诺塔移动次数递归算法c语言,谁知道C语言汉诺塔递归算法及其详细注释?
源代码:
#include
void movedisc(unsigned n,char fromneedle,char toneedle,char usingneedle);
int i=0;
int main()
{
unsigned n;
printf("please enter the number of locomotive:");
scanf("%d",&n); //输入N值
printf("\tneedle:\t a\t b\t c\n");
movedisc(n,'a','c','b'); //从A上借助B将N个盘子移动到C上
//*********************************************************************
//在此处加入如下代码将C上的N个盘子再移回A 去掉此处代码即汉诺塔问题源代码
for(int j=1;j<=(int)n;j++)
{
i++;
printf("\t[%d]:\t%2d
}
//*********************************************************************
printf("\tTotal:\t%d\n",i);
scanf("%d",&n);
return 0;
}
void movedisc(unsigned n,char fromneedle,char toneedle,char usingneedle)
{
if(n>0)
{
//从fromneedle上借助toneedle将N-1个盘子移动到usingneedle上
movedisc(n-1,fromneedle,usingneedle,toneedle);
++i;
//将fromneedle 上的一个盘子移到toneedle上
switch(fromneedle)
{
case 'a':
switch(toneedle)
{
case 'b':
printf("\t[%d]:\t%2d----->%2d\n",i,n,n);
break;
case 'c':
printf("\t[%d]:\t%2d------------->%2d\n",i,n,n);
break;
}
break;
case 'b':
switch(toneedle)
{
case 'a':
printf("\t[%d]:\t%2d
break;
case 'c':
printf("\t[%d]:\t\t%2d----->%2d\n",i,n,n);
break;
}
break;
case 'c':
switch(toneedle)
{
case 'a':
printf("\t[%d]:\t%2d
break;
case 'b':
printf("\t[%d]:\t\t%2d
break;
}
break;
}
//从usingneedle上借助fromneedle将N-1个盘子移动到toneedle上
movedisc(n-1,usingneedle,toneedle,fromneedle);
}
}
汉诺塔移动次数递归算法c语言,谁知道C语言汉诺塔递归算法及其详细注释?相关推荐
- pcf8574c语言测试程序,51单片机+PCF8574简易密码锁程序 带详细注释 1602显示
#include #include "intrins.h" #define uchar unsigned char #define uint unsigned int #defin ...
- c语言AT源码,51单片机读写AT24C02源代码(详细注释)
在P1口上接八个led灯,结果就显示在这八个灯上面.AT24C02的接线方式见程序的顶部的定义.以下是源代码: #include //包含头文件 typedef unsigned char uchar ...
- C语言递归思想实现汉诺塔
目录 1.递归思想简介 2.汉诺塔问题 3.汉诺塔递归的c语言实现 1.递归思想简介 在c语言中,程序调用自身的编程技巧称为递归( recursion). 递归的定义看上去似乎很抽象,使用代码描述能够 ...
- C语言---移盘子----Hanoi(汉诺)塔问题,显示移动盘子的步骤
C语言-移盘子----Hanoi(汉诺)塔问题,显示移动盘子的步骤 在学习递归的过程中,Hanoi(汉诺)塔问题是避开不了的,很多新手在这儿一脸懵. 我们先简单介绍一些Hanoi(汉诺)塔问题到底是个 ...
- 汉诺塔求次数(用递归)
Copyright(c)2013,烟台大学计算机学院学生 *All rights reserved. *文件名称:汉诺塔求次数(用递归) *作者:杨飞 *完成日期:2013年11月25日 *版本号:v ...
- 详解递归,文+图+代码,带你轻松了解递归算法的设计思路(附汉诺塔分析及题解)
递归,从代码实现上来看就是函数的自我调用,即在函数体中再调用函数本身.如: void dg(int i){if(i>10)return;//递归出口cout<<i;//可以是其他语句 ...
- 7-251 汉诺塔问题7-252 汉诺塔移动次数
目录 7-251 汉诺塔问题 7-252 汉诺塔移动次数 7-251 汉诺塔问题 分数 100 全屏浏览题目 切换布局 作者 于延 单位 哈尔滨师范大学 任务描述 在印度,有这么一个古老的传说:在世界 ...
- NYIST汉诺塔(一)(三)问题以及汉诺塔的路径实现
首先,什么是汉诺塔?如题,简单的介绍一下:在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地 ...
- c语言英汉互译编程,用C语言编辑简单英汉互译词典.doc
疥详刁呆害獭荆羞哈沮蒜赫夜内淮牺彻蔼纤凤虹锥硝够唬古进淋牡振拘铅笺元扳与醒靳蹋销钡胶致石衙钦目妈而炸赚鹤邓穷窍瘴笼旬房殆查恨蠢煌沧祥斥瞩骤敌晤屏莲匆目穷妖暗屹码冬息摊挎傍啡坟范给羹哥皱做斋绥甭焕睫苍苫 ...
- c语言找出一个数组中出现次数最多的那个元素,c语言找出数组中出现次数最多地那个元素...
matlab中如何找出不同维度矩阵出现次数最多的数组并记录其个数 首先是胞矩阵中的序列问题,不妨假设AA{1}是一个多行两列的数据,AA{2}同例.程序如下clcclearallAA{1}=[12;2 ...
最新文章
- 【设计模式】装饰者模式
- c++ 调用python2类获取返回值
- yamlcpp遍历_OpenCV文件输入和输出使用XML和YAML文件
- web前端零基础入门学习!前端真不难!
- 前后数据交互(ajax) -- 初始化页面表格
- 【记】jQuery中的选择器:visible对visibility:hidden的处理
- HDU 1999 不可摸数
- HDU 2586 How far away ?【LCA】
- Redis 中 Lua 脚本的应用和实践
- 微软Skype即将抛弃Windows Phone 8和8.1用户
- textarea在IE中和FF下不同的效果
- OSI七(八)层结构 TCP/IP 4层结构
- Flink窗口-时间窗口
- 回答cad转pdf格式的简易方法
- Android实验五-组件通信2
- wordpress快速删除垃圾评论和关闭评论
- (二)ubuntu下安装Amd RX470驱动
- python 排序(升序或降序)
- 支付宝支付(2) 电脑网站支付(SpringBoot+沙箱环境+Alipay Easy SDK)
- Java项目:基于Java药品管理系统(计算机毕业设计)