• 第十一周作业


    这个作业属于那个课程 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 递归函数 递归函数
  • 相关阅读:
    unittest详解(二) 跳过用例的执行(skip)
    Selenium获取input值的两种方法:WebElement.getAttribute("value")和WebElement.getText()
    python 函数参数的传递(参数带星号的说明) 元组传递 字典传递
    获取当前运行函数名称和类方法名称
    python中datetime模块中strftime/strptime函数
    面试题
    H5测试-缓存机制
    cp命令
    Java面试
    名词解释。。
  • 原文地址:https://www.cnblogs.com/xgblz/p/10847121.html
Copyright © 2020-2023  润新知