zoukankan      html  css  js  c++  java
  • 第十一周作业

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/3203
    我在这个课程的目标是 递归函数
    这个作业在那个具体方面帮助我实现目标 更好的使用递归函数
    参考文献 c语言程序设计

    7-1 汉诺塔问题*

    汉诺塔是一个源于印度古老传说的益智玩具。据说大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着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
    

    1.实验代码:

    #include<stdio.h>
    void arr(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);
    	
    	arr(n,a,b,c);
    	
    	return 0;	
    } 
    
    void arr(int n,char a,char b,char c)
    {
    	if(n == 1)
    	{
    		printf("%d: %c -> %c
    ",n,a,b);
    	}
    	
    	else
    	{
    		
    		arr(n-1,a,c,b);
    		printf("%d: %c -> %c
    ",n,a,b);
    		arr(n-1,c,b,a);
    		
    	}
    	return ;
    }
    

    3.错误截图:

    遇到的问题:输入的时候忽视了换行符
    解决方法:在scanf()里添加换行符

    4运行截图:

    心得

    这周作业很难只能勉强写出一道题,很吃力,

    耗时:30小时

    编程总结的感受

    优点
    结合两个人的思路能够更便捷的写出题目,并且发生错误的情况也会减少
    缺点
    多角度思考,难以统一思路

    学习进度条

    周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较迷惑问题
    5/4-5/10 30h 400 递归函数 递归函数
  • 相关阅读:
    mysql 聚集函数 count 使用详解
    在Docker中使用kettle遇到的问题解决
    整取零存_字段级迁移工具
    快速修改MySQL字段类型
    数据仓库知识点梳理(4)
    五一节分享60多本免费AI电子书
    数据仓库知识点梳理(3)
    数据仓库知识点梳理(2)
    数据仓库知识点梳理(1)
    解决MacVim在macOS Catalina下字母显示不全的问题
  • 原文地址:https://www.cnblogs.com/xgblz/p/10847121.html
Copyright © 2011-2022 走看看