永发信息网

汉诺塔以C为中转 把n-1个盘子从a移到b 不是很理解函数怎么会实现的?

答案:1  悬赏:70  手机版
解决时间 2021-10-20 21:17
汉诺塔以C为中转 把n-1个盘子从a移到b 不是很理解函数怎么会实现的?
最佳答案
#include <stdlib.h>//move n plates: from --> to//the buffer can be used, if neededint hanoi(int n, char from, char buffer, char to) { if(n == 1) { //move the NO.1 plate directly: from --> to printf("Move sheet %d from %c to %c\n", n, from, to); //the NO.1 plate is moved & return return 0; } else { //n plates to be moved: from --> to //move the n-1 plates above: from --> buffer //give this task to the next recursion hanoi(n-1, from, to, buffer); //the n-1 plates above were move to buffer //so the NO.n plate can be moved directly printf("Move sheet %d from %c to %c\n", n, from, to); //however the n-1 plates are still in buffer //move them to the terminal position //(the "from" position has no plate, & can be one so-called buffer) hanoi(n-1, buffer, from, to); //the task given is done & return return 0; }}int main(int argc, char *argv[]){ int n; printf("input number of the plates:"); scanf("%d",&n); //end only if 0 is inputed while(n){ hanoi(n, 'A', 'B', 'C'); printf("input number of the plates:"); scanf("%d", &n); } system("PAUSE"); return 0;}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现金支付工程预算费用,怎么写分录
开封市祥符区路达驾驶员培训学校办公地址在什
烟台开发区养老保险挂档需要的计划生育证明是
问问什么是三向防电墙?谁了解?
东北师范大学人文学院会计学怎么样
谁能告诉我牛油果这东西怎么吃...
地砖不平如何处理谁能告诉下我
胸口发闷,要注意什么?
阳光旅行社地址在哪,我要去那里办事,
怀孕38周注意事项有哪些?
未成年人有权继承继父母的遗产吗?
台州信溢农业机械有限公司怎么样
怀孕五个多月了,肚子有多大啊
冷库拆迁补偿标准?有谁清楚?
姐妹洗车行(太莫公路东)地址在什么地方,我要
推荐资讯
6只兔子的重量等于2只小狗的重量,9只小狗等
AJ11复活节变色龙黑白男40码多少价位
鼻子大而扁整容要多少钱
到底联通与移动哪个信号好啊
洛阳凯瑞办公地址在什么地方,我要处理点事
一扇门窗用的玻璃是中空钢化low-e玻璃,规格为
一直打喷嚏是什么原因?
闻雁 韦应物介绍
光大银行网上银行怎样投资理财
中山哪有大型的书店 中山市哪有大型的书店,
苏州星杰国际设计地址具体在哪里?有人知晓的
哪个牌子的搅拌机 最好用?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?