北京建筑工程学院
计算机教学与网络信息部 C语言程序设计基础
实验补充题——循环结构部分
1. 养兔子
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1063
题目描述:
一对成熟的兔子每月能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是一个月,而成熟后的第二个月才开始生小兔。某人领养了一对小兔子,一公一母,请问,第N个月以后,他将会得到多少对兔子。
输入: 测试数据包括多组,每组一行,为整数n(1≤n≤90)。输入以0结束。
输出:
对应输出第n个月有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。
样例输入:
1
2
0
样例输出:
1
2
2. 找零钱
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1068
题目描述:
我们知道人民币有1、2、5、10、20、50、100这几种面值。
现在给你n(1≤n≤250)元,让你计算换成用上面这些面额表示且总数不超过100张,共有几种。
比如4元,能用4张1元、2张1元和1张2元、2张2元,三种表示方法。
输入: 输入有多组,每组一行,为一个整合n。输入以0结束。
输出: 输出该面额有几种表示方法。
样例输入:
1
4
0
样例输出:
1
3
提示:
如果我告诉你,这题是用暴力穷举的方法,你能通过吗?^_^
3. 漂亮菱形
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1069
题目描述:
*
***
*****
*******
*****
***
*
上面的菱形漂亮吗? 现给出菱形的高度,要求你打印出相应高度的菱形,比如上面的菱形高度为7。
输入:
测试数据包括多行,每行1个整数h,h为奇数,代表菱形的高度。输入以0结束。
输出: 输出每组对应的菱形。
样例输入:
1
7
0
样例输出:
*
*
***
*****
*******
*****
***
*
4. 统计1到N之间数字1的个数
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1163
题目描述:
N为正整数,计算从1到N的所有整数中包含数字1的个数。比如,N=10,从1,2...10,包含有三个数字1。
输入:
输入数据有多组测试数据,每一组占一行,每行为一个数字N,其中1≤N≤9999。以0作为结束。
输出: 输出1到N所有整数中1的个数,每个测试占一行。
样例输入:
1
2
3
4
5
6
7
8
9
0
样例输出:
1
1
1
1
1
1
1
1
1
5. 打印数字图形
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1177
题目描述:从键盘输入一个整数n(1≤n≤9),打印出指定的数字图形
输入: 正整数n(1≤n≤9)。
输出: 指定数字图形。
样例输入:
5
样例输出:
1
121
12321
1234321
123454321
1234321
12321
121
1
6. u Calculate e
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1204
题目描述:A simple mathematical formula for e is
where n is allowed to go to infinity. This can actually yield very accurate approximations of e using relatively small values of n.
输入: no input data
输出:
Output the approximations of e generated by the above formula for the values of n from 0 to 9. The beginning of your output should appear similar to that shown below.
样例输入:
样例输出:
n e
- -----------
0 1
1 2
2 2.5
3 2.666666667
4 2.708333333
7. 发工资咯:)
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1378
题目描述:
作为TZC的老师,最盼望的日子就是每月的15号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵。但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?
这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。
输入:
输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资。n=0表示输入的结束,不做处理。
输出:
对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。
样例输入:
3
1 2 3
0
样例输出:
4
8. 海选女主角
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1380
题目描述:
potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口。“做什么比较挣钱呢?筛沙子没力气,看大门又不够帅...”potato老师很是无奈。
“张艺谋比你还难看,现在多有钱呀,听说还要导演奥运开幕式呢!你为什么不去娱乐圈发展呢?”lwg在一旁出主意。嗯,也是,为了生存,就委屈点到娱乐圈混混吧,马上就拍一部激光电影《杭电记忆——回来我的爱》。
说干就干,马上海选女主角(和老谋子学的,此举可以吸引媒体的眼球,呵呵),并且特别规定,演员必须具有ac的基本功,否则直接out!
由于策划师风之鱼(大师级水王)宣传到位,来应聘的MM很多,当然包括nit的蛋糕妹妹等呼声很高的美女,就连zjut的jqw都男扮女装来应聘(还好被安全顾问hdu_Bin-Laden认出,给轰走了),看来娱乐圈比acm还吸引人哪...
面试那天,刚好来了m*n个MM,站成一个m*n的队列,副导演Fe(OH)2为每个MM打了分数,分数都是32位有符号整数。
一开始我很纳闷:分数怎么还有负的?Fe(OH)2解释说,根据选拔规则,头发染成黄色、化妆太浓、穿的太少等等都要扣分数的,扣的多了就可能是负分了,当然,如果发现话语中夹有日语,就直接给-2147483648分了。
分数送上来了,是我做决定的时候了,我的一个选拔原则是,要选一个面试分数绝对值最大的MM。
特别说明:如果不幸选中一个负分的MM,也没关系,因为我觉得,如果不能吸引你,那要想法恶心你。
输入:
输入数据有多组,每组的第一行是两个整数m和n(1<=m,n<=100),表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。
输出:
对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。note:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。
样例输入:
2 3
1 4 -3
-7 3 0
样例输出:
2 1 -7
9. 空心三角形
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1428
题目描述:
把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果
输入:
每行包含一个字符和一个整数n(0
输出:
每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。
样例输入:
X 2
A 7
@
样例输出:
X
XXX
A
A A
A A
A A
A A
A A
AAAAAAAAAAAAA
提示:
空心三角形利用“%*c”输出,*代表抑制符。
10. 正整数解
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1433
题目描述:你的任务是:计算方程x^2+y^2+z^2= num的一个正整数解。
输入:
输入数据包含多个测试实例,每个实例占一行,仅仅包含一个小于等于10000的正整数num。
输出:
对于每组测试数据,请按照x,y,z递增的顺序输出它的一个最小正整数解,每个实例的输出占一行,题目保证所有测试数据都有解。
样例输入:
3
样例输出:
1 1 1
11. 拍皮球
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1456
题目描述:
小瑜3岁了,很喜欢玩皮球,看来今后喜欢打篮球的^_^。最近她发现球从手中落下时,每次落地后反跳回原高度的一半,再落下,每次球落地时数球跳了几次,数到n次时爸爸在边上喊停,问小瑜现在球到底总共走了多少距离,小瑜故作沉思状,爸爸又问接下来小球能跳多高啊,小瑜摇摇头,心想还没跳我怎么知道啊,难道爸爸是神啊!这时的你在边上出主意想给小瑜写个程序计算一下,因此任务就交给你啦!假设球的初始高度为h,计算第n次落地时球经过的距离,以及落地后反弹能有多高。
输入:
输入数据有多组,第一行为数据的组数t,下面t行为t组数据,每行有两个数h和n,分别用空格分隔。
输出:
输出第n次反弹时球经过的距离和球最后的高度,保留小数点后2位。
样例输入:
2
100 1
100.0 2
样例输出:
100.00 50.00
200.00 25.00
12. 求最大值
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1459
题目描述:求n个整数中的最大值。
输入: 输入数据有2行,第一行为n(1<=n<=10),第二行是n个整数。
输出: 输出n个整数中的最大值。
样例输入:
5
1 2 3 4 5
样例输出:
5
13. 求绝对值最大值
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1460
题目描述:求n个整数中的绝对值最大的数。
输入: 输入数据有2行,第一行为n(1<=n<=10),第二行是n个整数。
输出: 输出n个数中绝对值最大的数。
样例输入:
5
-1 2 3 4 -5
样例输出:
-5
14. 余弦
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1477
题目描述:输入n的值,计算cos(x)。
输入: 输入数据有一行,包括x和n。第一数据为x,第二个数据为n
输出: 输出cos(x)的值,保留4位小数
样例输入:0.0 100
样例输出:1.0000
提示:
阶乘值递增速度非常快,很容易造成数据的溢出,故不能将分子分母分别计算,而是分子分母一边约分,一边递增。
15. 打印金字塔
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1478
题目描述:输入n值,打印下列形状的金字塔,其中n代表金字塔的层数。
输入: 输入只有一个正整数n(1<=n<=9)。
输出: 打印金字塔图形,其中每个数字之间有一个空格。
样例输入:
3
样例输出:
1
1 2 1
1 2 3 2 1
16. 新生程序设计参赛资格
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2627
题目描述:
台州学院首届新生程序设计竞赛迎来了好多参赛选手,多达N个,可是我们的机房计算机很有限,只有M台计算机,每个选手需要占1台计算机。本来应该安排一场资格赛的,可是来不及了,为了体现公平,竞赛组委会只好抽签决定了(希望下次我们的竞赛组织得更好些)。你能确定通过抽签从N个人中抽取M个有多少种可能性吗?
输入:
数据的第一行包括一个正整数T,接下来有T组数据,每组数据占一行。每组数据包含两个整数N(报名的人数,1<=N<=30),M(机房计算机的台数,0<=M<=30)
输出: 每组数据输出一个整数,每个输出占一行。
样例输入:
2
3 1
4 4
样例输出:
3
1
17. 存钱计划(一)
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2727
题目描述:
WY终于上大学了,大家都知道大学里特缺钱,特别是有GF/BF的人士。在TZC,WY开始存钱了,不过他的存钱计划有点奇怪,每天他都往储蓄罐里存一毛钱,等到储蓄罐满n毛钱了,从储蓄罐取出全部钱,马上花掉买些必需品。这样循环了。(注:存钱花钱可以在同一天)
输入:
输入有多组数据,每组数据占一行,每行2个正整数n和t,n表示存到n毛就花掉,t表示存钱持续的天数。n,t均小于2^31。输入以EOF结束。
输出: 输出储蓄罐里t天后剩下的钱数(毛)。
样例输入:
1 2
2 5
7 3
样例输出:
0
1
3
18. 明明的幸运数
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2779
题目描述:
明明是1993年3月3日出生的,他出生的年份,月数、日期都有数字3,他认为含有数字3的数都是他的幸运数,甚至凡是3的倍数的数他都非常喜欢,认为都是他的幸运数,现在给出一个正整数N,请你帮明明统计出1至N之间(包括1和N)有几个数字是明明的幸运数。
输入: 输入数据只有一个正整数N(N<=32767)。
输出: 输出数据只有一个整数,就是1至N之间明明的幸运数的个数。
样例输入:10
样例输出:3
19. 数数小木块
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2780
题目描述:
在墙角堆放着一堆完全相同的正方体小木块,如下图所示:
因为木块堆得实在是太有规律了,你只要知道它的层数就可以计算所有木块的数量了。
输入: 输入数据只有一个整数n,表示这堆小木块的层数(1<=n<=100)。
输出: 文件中只有一个整数,表示这堆小木块的总数量。
样例输入:5
样例输出:35
提示: 木块的规律是:1+(1+2)+(1+2+3)+…+(1+2+3+…+n)
20. 计算GPA
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1330
题目描述:
每学期的期末,大家都会忙于计算自己的平均成绩,这个成绩对于评奖学金是直接有关的。国外大学都是计算GPA(grade point average) 又称GPR(grade point ratio),即成绩点数与学分的加权平均值来代表一个学生的成绩的。那么如何来计算GPA呢?
一般大学采用之计分法
A90 - 100 4 点
B80 - 89 3 点
C70 - 79 2 点
D60 - 69 1 点
E0 - 59 0 点
例如:某位学生修习三门课,其课目、学分及成绩分别为:
英文:三学分、92 分;化学:五学分、80 分;数学:二学分、60分,则GPA的算法如下:
科目 学分 分数 点数 分数×点数
英文 3 92 4 12
化学 5 80 3 15
数学 2 60 1 2
合计 10 29
29/10=2.9
2.9即为某生的GPA
下面有请你写一个用于计算GPA的程序。
输入:
包含多组数据,每组数据的第一行有一个数N,接下来N行每行表示一门成绩。每行有两个实数型的数 s,p,s表示这门课的学分,p表示该学生的成绩(百分制)。如果p=-1则说明该学生这门课缺考(不过补考可也不是好过的!),是不应该计算在内的。
输出:
对每组数据输出一行,表示该学生的GPA,保留两位小数。如果GPA不存在,输出-1。
样例输入:
3
3 92
5 80
2 60
样例输出:
2.90
¥29.8
¥9.9
¥59.8