附第二次模拟总结_第1页
附第二次模拟总结_第2页
附第二次模拟总结_第3页
附第二次模拟总结_第4页
附第二次模拟总结_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2015 UPC College of Computer & Communication EngineeringCopyright from DJ NingIBMModified by L Guo;第二次模拟总结程序设计语言CIBM Software Group | Rational software | UPC &UPC &3224 数素数Description4 令Pi表示第i个素数。现任给两个正整数M = N = 104,请输出PM到PN的所有素数。Input4 输入在一行中给出M和N,其间以空格分隔。Output4 输出从PM到PN的所有素数,每10个数字占1

2、行,其间以空格分隔,但行末不得有多余空格。2Sample Input5 27Sample Output11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103IBM Software Group | Rational software | UPC &UPC &参考代码3int main( ) int m,n,cnt,i,ncnt; /freopen(in.txt,r,stdin); scanf(%d %d,&m,&n); cnt=ncnt=0; for (i = 2; cnt = m

3、 & cnt = n) ncnt + ;/统计打印了几个 if (ncnt % 10 = 1) printf(%d,i); else printf( %d,i); if (ncnt % 10 = 0) printf(n); if (ncnt % 10 != 0) printf(n); return 0;#include int isPrime(int m) int flag = 1,i; for (i = 2; i = m/2; i +) if (m%i=0) flag = 0; break; return flag;IBM Software Group | Rational soft

4、ware | UPC &UPC &本题自我检讨:4输出格式不在话下,提交一看Time Limit Exceed,顿时怀疑算法不对,觉得求素数不够高效。结果是因为变量没用对造成了死循环。4Time Limit Exceed,几乎都是死循环造成!4Output Limit Exceed,几乎都是死循环造成!尤其查看输出!4freopen没有注释掉,可能造成死循环!4Presentation Error,福利啊,表示输出格式不对,一般是少了n或者多了n(这个很偶然);或者多了少了空格!4IBM Software Group | Rational software | UPC &

5、;UPC &1024 银行利率Description4 设行1年期定期存款年利率为2.25%,存款本金为deposit元,试编程计算并输出n年后的本利之和。Input4 输入一个正整数和一个实数,分别代表存款年数和存款本金。Output4 输出一个双精度实数,小数点后保留6位有效数字。5Sample Input2 100Sample Output104.550625IBM Software Group | Rational software | UPC &UPC &参考代码6#include int main( ) int n,i; double d; /freopen

6、(in.txt,r,stdin); scanf(%d %lf,&n,&d); /读入年数和本金 for (i = 1; i = n; i +) d *= 1.0225; printf(%.6fn,d); /要是数不对可以用插桩法一步步查,看看是不是多循环或者少循环了一次 return 0;IBM Software Group | Rational software | UPC &UPC &1004 A + B Problem IVDescription4 给定一些整数,对他们求和。Input4 输入数据有多行。4 每行数据中第一个整数N (0=N=100),后面

7、跟着N个整数ai (-1000=ai=1000)4 最后一行数据是0,标志着输入结束。0一行本身不需要计算输出。Output4 对每一行N个正整数ai求和并输出。7 Sample Input4 1 2 3 45 1 2 3 4 50 Sample Output1015IBM Software Group | Rational software | UPC &UPC &参考代码8/解法1#include int main( ) int n,i,sum,tmp; /freopen(in.txt,r,stdin); while (scanf(%d,&n) & n !=

8、 0) sum = 0; for (i = 1; i = n; i +) scanf(%d,&tmp); sum += tmp; printf(%dn,sum); return 0;IBM Software Group | Rational software | UPC &UPC &9/解法2#include int main( ) int n,i,sum,tmp; /freopen(in.txt,r,stdin); do scanf(%d,&n); if ( n = 0 ) break; else sum = 0; for (i = 1; i = n; i +

9、) scanf(%d,&tmp); sum += tmp; printf(%dn,sum); while (1); return 0; IBM Software Group | Rational software | UPC &UPC &1051 统计数字字符的个数1Description4 输入一行字符,以回车符作为输入结束的标志。统计其中数字字符的个数Input4 多个字符,以回车符结束,回车符不作为有效字符Output4 输出一个整数,表示数字字符的个数。10Sample Input12abrt122013Sample Output8IBM Software Gr

10、oup | Rational software | UPC &UPC &参考代码11#include int main( ) int sum; char c; /freopen(in.txt,r,stdin); sum = 0; while (scanf(%c,&c)!=EOF) if (c = 0 & c =48 & c=48 & (int)c=57IBM Software Group | Rational software | UPC &UPC &迷信的吴医生和机智的护士Description4 吴医生是个很迷信的医生,他认为

11、与4相关的数字都会带来厄运,因此他拒绝为所有挂号单序号中有数字4,或序号能被4整除的病人看病。(每张挂号单有一个唯的序号)小李是一名年轻的护士,虽然对吴医生的怪癖好不能理解,但他是内科最权威的医生, 小李无法阻止他的我行素。为了能让每个病人都顺利的看上病,小李决定只给病人们不含有数字4,并且不被4整除的序号挂单。4 今天来了n位病人都要挂吴医生的专家门诊(n为正整数,且 n 25),请问小李能开给这n位病人的挂号单的序号总和最小是多少?Input4 输入为一行,正整数n,n 25。Output4 输出为一行,输出最小的序号总和。12Sample Input10Sample Output67IB

12、M Software Group | Rational software | UPC &UPC &HINT(1) 对样例的说明:67 = 1 + 2 + 3 + 5 + 6 + 7 + 9 + 10 + 11 + 13(2) 提示:前15个最小的序号是:1 2 3 5 6 7 9 10 11 13 15 17 18 19 21(3) 提示:第25小的序号是3513IBM Software Group | Rational software | UPC &UPC &参考代码14#include int main( ) int n,i,sum,cnt; /freop

13、en(in.txt,r,stdin); scanf(%d,&n); sum = cnt = 0; /sum用来计算总和,cnt统计已经加了几个病人的号码 for (i = 1; cnt n; i +) if (i%10!=4 & i%4!=0) /该题降低了难度,最大序号是35,也就是含4的数只有4 14 24 sum += i; cnt +; printf(%dn,sum); return 0;如果数很大,用循环进行整数拆分IBM Software Group | Rational software | UPC &UPC &2720 切饼Description

14、4 古有善切饼者,名苞丙,苞丁之弟也。把一张大饼置于板上,不许离开,每一刀切下去都是直线。问切n(0n20)刀最多能分成少块?例如:4 如果n=0,则最多能分成1块;4 如果n=1,则最多能分成2块,比第0刀多出1块;4 如果n=2,则最多能分成4块,比第1刀多出2块;4 如果n=3,则最多能分成7块,比第2刀多出3块;4 以此类推Input4 一个正整数n。Output4 切n刀最多能分成的块数。15Sample Input4Sample Output11IBM Software Group | Rational software | UPC &UPC &参考代码16#inc

15、lude int main( ) int n,i,sum; /freopen(in.txt,r,stdin); scanf(%d,&n); sum = 1; for (i = 1; i = n; i +) sum += i; printf(%dn,sum); return 0;研究规律,发现就是计算累加和IBM Software Group | Rational software | UPC &UPC &1098 二哥摘苹果Description4 二哥种的一棵苹果树到了采摘的时候,但是由于二哥身高的限制,有些苹果太高摘不到。于是二哥借来了一个凳子,踩在上面可以摘到更多

16、的苹果。二哥想在摘苹果之前知道自己能摘到多少苹果,如果实在太少,他宁可坐在树下等苹果自己掉下来砸到头上。Input4 输入共有两行:4 第1行有3个整数,分别表示二哥的身高、凳子的高度和苹果的个数n。4 第2行有n个整数,分别表示每个苹果的高度。Output4 输出一个整数m,表示二哥最多能摘到的苹果的个数为m。17IBM Software Group | Rational software | UPC &UPC &HINT4对于全部数据:高度为1000以下的正整数,苹果的个数1n1000。18Sample Input177 40 10180 151 152 193 168 2

17、55 278 303 211 217Sample Output7IBM Software Group | Rational software | UPC &UPC &参考代码19#include int main( ) int h,h2,n,m,i,tmp; /freopen(in.txt,r,stdin); scanf(%d %d %d,&h, &h2, &n); /分别读入身高、板凳高、苹果数 m = 0; /m用来计数,记得初始化 for (i = 1; i = tmp) m+; printf(%dn,m); return 0;IBM Softwa

18、re Group | Rational software | UPC &UPC &2669 勤劳的蚂蚁Description4 有两只勤劳的蚂蚁在准备食物,为了自我激励一下,它们打算开展比赛,看谁在一段时间内准备的食物多一些。你能帮忙做个裁判吗,来统计一下哪只蚂蚁准备得更加多一些?Input4 输入有若干行,每行2个数字,第一个整数表示蚂蚁(1表示1号蚂蚁,2表示2号蚂蚁,不会出现其他数字)。第二个整数表示该蚂蚁带回的食物数量,假设该数据都在合法范围内。 4 当输入两个数字都为0(即 0 0)时表示输入结束。Output4 输出拖回食物多的蚂蚁的编号和食物总数量。如果相同,输出

19、“equal”(输出不包含双引号)。输出后换行。20IBM Software Group | Rational software | UPC &UPC &21Sample Input1 22 91 72 61 12 01 22 110 0Sample Output2 26IBM Software Group | Rational software | UPC &UPC &22/解法1#include int main( ) int no,num,sum1,sum2; /no表示第几号蚂蚁;num每行读的食物数 /freopen(in.txt,r,stdin);

20、sum1 = sum2 = 0; /sum1表示蚂蚁1食物累计数 while (scanf(%d %d, &no, &num) & !(no=0 & num=0) if (no = 1) sum1 += num; /是蚂蚁1则加到sum1 else sum2 += num; if (sum1 = sum2) printf(equaln); else if (sum1 sum2) printf(%d %dn,1,sum1); else printf(%d %dn,2,sum2); return 0; 换成:(no | num)行吗?IBM Software Gro

21、up | Rational software | UPC &UPC &23/解法2#include int main( ) int no,num,sum1 = 0,sum2 = 0; do scanf(%d %d, &no, &num); if (no = 0 & num = 0) break; else if (no = 1) sum1 += num; else sum2 += num; while (1); if (sum1 = sum2) printf(equaln); else if (sum1 sum2) printf(%d %dn,1,sum

22、1); else printf(%d %dn,2,sum2); return 0; IBM Software Group | Rational software | UPC &UPC &1260 青年歌手大奖赛_评委会打分Description4 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分Input4 输入数据有多组,每组占一行,每行的第一个数是n(2n100),表示评委的人数,然后是n个评委的打分。Output4 对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。24Sample

23、 Input3 99 98 974 100 99 98 97Sample Output98.0098.50IBM Software Group | Rational software | UPC &UPC &25#include int main( ) int n,i,score,sum,max,min; /freopen(in.txt,r,stdin); max=0; min=101; /初始化,max先给个足够小的数,min先给个足够大的数 while (scanf(%d, &n) != EOF) /不确定组数,读到末尾为止 sum = 0; /sum累计每行的值,初始化为0,不要写到while外面了 for (i = 1; i = n; i +) scanf(%d, &score); if (max score) min = score; sum += score; printf(%.2fn,(sum-max-min)*1.0/(n-2); return 0;IBM Software Group | Rational software | UPC &UPC &1048 逆序数字Description4 输入一个int型整数,将其逆序输出,每

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论