• 第十一周作业


    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/3202
    我在这个课程的目标是 递归函数、宏定义、全局变量
    这个作业在哪个具体方面帮助我实现目标 宏定义和全局变量的使用
    参考文献 https://www.icourse163.org/course/0809ZJU007-9001

    选择题


    汉诺塔问题

    汉诺塔是一个源于印度古老传说的益智玩具。据说大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘,大梵天命令僧侣把圆盘移到另一根柱子上,并且规定:在小圆盘上不能放大圆盘,每次只能移动一个圆盘。当所有圆盘都移到另一根柱子上时,世界就会毁灭。

    请编写程序,输入汉诺塔圆片的数量,输出移动汉诺塔的步骤。
    输入格式
    圆盘数 起始柱 目的柱 过度柱
    输出格式
    移动汉诺塔的步骤
    每行显示一步操作,具体格式为:
    盘片号: 起始柱 -> 目的柱
    其中盘片号从 1 开始由小到大顺序编号。
    输入样例

    3
    a c b
    

    输出样例

    1: a -> c
    2: a -> b
    1: c -> b
    3: a -> c
    1: b -> a
    2: b -> c
    1: a -> c
    

    实验代码

    #include<stdio.h>
    void hanio (int n,char a,char b,char c);
    int main (void)
    {
        int n;
        char a,b,c;
        scanf("%d
    ",&n);
        scanf("%c %c %c",&a,&b,&c);
        hanio(n,a,b,c);
    
        return 0;
    }
    
    void hanio (int n,char a,char b,char c)
    {
        if(n==1)
          printf("%d: %c -> %c
    ",n,a,b);
        else {
            hanio (n-1,a,c,b);
            printf("%d: %c -> %c
    ",n,a,b);
            hanio(n-1,c,b,a);
        }
    }
    

    思维导图

    运行结果截图

    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    3/3-3/9 4小时 100行 二维数组和文件的读取与写入 暂无
    3/10-3/16 4小时 100行 怎么找和最大的子数组 暂无
    3/17-3/23 4小时 100行 冒泡排序 暂无
    3/24-3/30 6小时 200行 字符串的储存方法,和字符串的运用 暂无
    3/31-4/6 6小时 200行 指针的意义和运用 暂无
    4/7-4/13 6小时 300行 字符串和指针的使用 暂无
    4/14-4/20 6小时 400行 结构体的使用 暂无
    4/21-4/27 6小时 350行 函数的嵌套调用和递归函数等的相关知识 暂无
  • 相关阅读:
    css3 rotate(1turn)的用法
    canvas svg webgl threejs d3js 的区别
    利用css3给座右铭设置漂亮的渐变色
    svg相关的知识
    Mark标记功能的实现(像手工标记的一样)
    终于搞清楚了正向代理与反向代理的区别
    获取免费ip_存入excel_用了线程池_封装清晰
    爬去京东——智能音箱
    滑动验证码
    天气爬取的笔记
  • 原文地址:https://www.cnblogs.com/aomiaox/p/10846751.html
Copyright © 2020-2023  润新知