北京建筑工程学院
计算机教学与网络信息部计算机程序设计基础实验报告
实验5-3:实验名称循环结构程序设计(三) 实验地点大兴基础楼B座201
姓名张三专业土木工程班级土081 学号 2 日期2009.04.21
【实验目的】
(1)掌握循环嵌套和多重循环的使用
(2)掌握基本输入和输出多组数据的常用方法
【实验要求】
(1)掌握循环嵌套和多重循环的使用
(2)掌握基本输入和输出多组数据的常用方法
【实验环境】
(1) Microsoft XP操作系统
(2) Microsoft VC++ 6.0
【实验内容】
1.自然数的和之和
/acmhome/problemdetail.do?&method=showdetail&id=3063
题目描述:计算S=1+(1+2)+(1+2+3)+…+(1+2+…+N).已知N,要求写程序求出S。
输入:
第一行有1个整数T,表示有T组测试数据。
第二行~第T+1行,每行有1个整数N,1<=N<=200。
输出:对于每组输入数据,输出一行,包含一个整数,即此时S的值。
样例输入:
2
1
200
样例输出:
1
1353400
2.美食节之敲诈
/acmhome/problemdetail.do?&method=showdetail&id=2877
题目描述:
临海每年都会在临海体育馆举办一次美食节,可能xzc太宅了,大二才知道,虽然知道的有点晚了,但是不妨碍xzc好好吃一顿,可是很不巧啊,xzc忘了带money 了,为什么那么多香气腾腾的美食,xzc无耻的向同行的帅哥美女们打起了主意,但是打秋风的事是可一而不可再的,碍于脸面关系,每个人最多只请客x元,给出与xzc一同去逛美食节的人数n,以及n个人每个人所带的钱数,请你计算出xzc在美食节上最多能敲诈多少元?说明:X可能大于携带的money。
输入:
输入含多组数据,每组数据含两行,第一行有两个整数n和x,以空格分开,n 代表去美食节的人数,x代表xzc最多向其他人每个人敲诈x元;第二行为n个正整数,分别代表n个人每个人携带的money数量。
输入直到文件结束为止(即EOF)。
输出:每组输出数据占一行,即输出xzc在美食节上最多能敲诈的money数量。
样例输入:
5 2 // n,x
1 2 3 4 5 // m
样例输出:
9
提示:
while(n--){ if(m>=x)sum+=x;else sum+=x;}
3.水仙花数
/acmhome/problemdetail.do?&method=showdetail&id=1372
题目描述:
春天是鲜花的季节,MM们也是花枝招展,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。
输入:
输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。
输出:
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;如果给定的范围内不存在水仙花数,则输出no;每个测试实例的输出占一行。
样例输入:
100 120
no
370 371
4.自然数对
/acmhome/problemdetail.do?&method=showdetail&id=3062
题目描述:
知道2个自然数A,B,如果A+B,A-B都是平方数,那么A,B就是自然数对。
要求写程序判断给定的2个数A,B是否为自然数对。
输入:
第一行有1个整数T,表示有T组测试数据。
第二行~第T+1行,每行有2个数据A,B,其中0<=A+B<=2^31且A>B。
输出:
对于每组测试数据输出一行,包含"YES"或者"NO"。
"YES"表示该数对是自然数对,否则输出"NO"。
样例输入:
2
17 8
3 1
样例输出:
YES
NO
提示:
sqrt((a+b)*(a+b))= =(a+b) && sqrt((a-b)*(a-b))= =(a-b) ? YES : NO
5.切蛋糕
/acmhome/problemdetail.do?&method=showdetail&id=3299
题目描述:
今晚是GG的生日,大家的口福又来了哦,蛋糕可是少不了的,不过这蛋糕可不是人人都有的吃的哦,你得费点脑筋呢,只要你能用n刀切出最多块数的蛋糕(刀子每次都垂直于桌面),你就可以吃到美味的蛋糕了哦,(注意:切出的蛋糕大小可以不等)。
怎么样,相信聪明的你吃到这块蛋糕应该不是问题吧?
输入:输入包括多组数据,每组数据就是要切的刀数n(n<10000);
输出:每组输出切成的蛋糕数m
样例输入:
1
2
56
6.母牛的故事
/acmhome/problemdetail.do?&method=showdetail&id=1376
题目描述:
有一头母牛,它每年年初生一头小母牛。
每头小母牛从第四个年头开始,每年年初也生一头小母牛。
请编程实现在第n年的时候,共有多少头母牛?
输入:
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理
输出:对于每个测试实例,输出在第n年时母牛的数量。
每个输出占一行。
样例输入:
2
4
5
样例输出:
2
4
6
7.素数的判定
/acmhome/problemdetail.do?&method=showdetail&id=1374
题目描述:
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x,y<=50),判定该表达式的值是否都为素数。
输入:
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
输出:
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。
样例输入:
0 0
样例输出:
OK
8.素数
/acmhome/problemdetail.do?&method=showdetail&id=1098题目描述:输出100->200之间的素数的个数,以及所有的素数。
输入:无
输出:100->200之间的素数的个数,以及所有的素数。
样例输入:
样例输出:
21
101 103 … 197 199
9.打印菱形
/acmhome/problemdetail.do?&method=showdetail&id=1172题目描述:从键盘输入一个整数n(1≤n≤9),打印出指定的菱形。
输入:正整数n(1≤n≤9)。
输出:指定菱形。
第一行前面有n-1个空格,第二行有n-2个空格,以此类推。
样例输入:
5
样例输出:
*
***
*****
*******
*********
*******
*****
***
*
10.打印直角三角形
/acmhome/problemdetail.do?&method=showdetail&id=1462
题目描述:从键盘输入一个整数n(1≤n≤9),打印出指定的菱形。
输入直角三角形的直角边长度(两个直角边相同),打印输出该图形。
如输入5,输出下列图形:
*
**
***
****
*****
输入:
输入数据第一行为n,表示一共有n组数据输入,后面有n行,每行表示直角边长度(两个直角边相同)。
输出:以*字符来打印输出直角三角形图形。
样例输入:
3
1
2
3
样例输出:
*
*
**
*
**
***
【实验方法】
1.自然数的和之和
【源代码】
【运行结果】
【结论】
2.美食节之敲诈
【源代码】
【运行结果】
【结论】3.水仙花【源代码】
【运行结果】【结论】
4.自然数对【源代码】
【运行结果】【结论】
5.切蛋糕【源代码】
【运行结果】【结论】
6.母牛的故事【源代码】
【运行结果】
【结论】
7.素数的判定
【源代码】
【运行结果】
【结论】
8.素数
【源代码】
【运行结果】
【结论】
9.打印菱形
【源代码】
【运行结果】
【结论】
10.打印直角三角形
【源代码】【运行结果】【结论】【成绩评定】。