C语言程序设计第6堂作业
一、 本次课主要内容:
通过几个实例来进一步掌握循环结构的应用。
二、 实验内容:(70分)
1. 穷举算法(古典算术问题-搬砖头)某地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。问用45人正好搬45块砖,有多少种搬法?
2. 猴子吃桃问题。一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第n天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?试编写相应程序。(提示:采取逆向思维的方法,从后往前推断。)
3. 兔子繁衍问题。一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到n对?输入一个不超过10000的正整数n,输出兔子总数达到n最少需要的月数。试编写相应程序。
4. 韩信点兵:在中国数学史上,广泛流传着一个"韩信点兵"的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1 至5 报数,记下最末一个士兵报的数为1;
再按从1 至6 报数,记下最末一个士兵报的数为5;
再按从1 至7 报数,记下最末一个士兵报的数为4;
最后按从1 至11 报数,最末一个士兵报的数为10;
你知道韩信至少有多少兵?
5. 黑洞数:黑洞数也称为陷阱数,又称"Kaprekar问题",是一类具有奇特转换特性的数。任何一个数字不全相同的三位数,经有限次"重排求差"操作,总会得到495。最后所得的495即为三位黑洞数。所谓"重排求差"操作即组成该数的数字重排后的最大数减去重排后的最小数。(6174为四位黑洞数)
例如,对三位数207:
第1次重排求差得:720-027=693;
第2次重排求差得:963-369=594;
第3次重排求差得:954-459=495;
以后会停留在495这一黑洞数。如果三位数的3个数字全相同,一次转换后即为0。
试求出任意输入三位数重排求差的过程。
输入输出示例
123
321 - 123 = 198
981 - 189 = 792
972 - 279 = 693
963 - 369 = 594
954 - 459 = 495
6. 水仙花数:输入两个正整数m和n(m≥1, n≤1000),输出m 到n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。例如153的各位数字的立方和是13 + 53 + 33 = 153。试编写相应程序。
7. 求最大公约数和最小公倍数。输入两个正整数m和n(m<=1000,n<=1000),求其最大公约数和最小公倍数。试编写相应程序。
三、 实验要求:
1. 作业的Deadline: 2016-10-20 23:00pm
2. 将本次实验内容的代码上传到https://coding.net/ 网站。 (70分)
3. 写一篇随笔,内容分为四个部分:(总分30分)
写出本次课学习到的知识和体会、学习的时长、学习过程中遇到的问题、问题解决的方法及问题的疑惑等。
随笔的格式如下:
题目:实验六——循环结构程序练习总结
本次课学习到的知识点:(5分)
(1)…….
(2)……..
………..
2. 实验过程中遇到的问题及解决方法:(10分)
(1)
(2)
…….
3. 实验心得体会及本章学习总结(5分)
………
四、 预习下次课:
预习教材P96-103页中函数的定义,并完成练习5-1、练习5-2,下节课上课前带入实验室进行检查(10)
五、 本次作业评价方式:
总分100分:其中,coding中程序提交70分(根据代码的步骤、格式、注释、结构正确性来酌情分配),博客书写30分;,延迟一天扣10分,直至扣完100分,如果后期想要拿回本次的100分,就需要完成附加题来弥补,根据完成情况给出不超过100分。