码迷,mamicode.com
首页 > 其他好文 > 详细

河内塔

时间:2016-02-22 10:14:17      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
void towers(int,char,char,char);
int main()
{
    int num;
    printf("Enter the number of disks : ");
    scanf("%d", &num);
    printf("The sequence of moves involved in the Tower of Hanoi are :\n");
    towers(num,a,b,c); //将a柱子上的盘子移到b柱子上,借助于c柱子
    getchar();
    getchar();
    return;
}
void towers(int num, char frompole, char topole, char auxpole)
{
    if(num==1) printf("move disk 1 from pole %c to pole %c\n", frompole, topole);
    else 
    {
        towers(num-1,frompole,auxpole,topole); //将a柱子上的num-1个盘子移到c柱子上,借助于b柱子
        printf("move disk %d from pole %c to pole %c\n", num, frompole, topole); //将a柱子上的最大的盘子移动到b柱子上
        towers(num-1,auxpole,topole,frompole);//将c柱子上的num-1个盘子移动到b柱子上,借助于a柱子
    }
}

运行结果

技术分享

河内塔

标签:

原文地址:http://www.cnblogs.com/learning-c/p/5206116.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!