当前位置:首页 > 小学复赛试题精选
【问题分析】
这题就是给你N个顾客的购物总金额和一项优惠政策,让你求出优惠后该N个顾客所付的金额 【算法分析】
这题可以每读入一个数,就先求出该数所在的范围,然后根据相应的优惠措施得出优惠后的金额 【参考程序】 var n,i,p:longint; begin
assign(input,'shoping.in'); assign(output,'shoping.out'); reset(input); rewrite(output); readln(n);
for i:=1 to n do begin
readln(p); case p of
1..49:writeln(p); 50..99:writeln(p-10); 100..199:writeln(p-20); 200..1000:writeln(p-40); end; end;
close(input); close(output); end.
6、飞行时间 问题描述:
最近科学家又发现了一颗新的星星(称为T星),最近T星的外星人乘飞碟到过地球,外星人把一个计时器留在了地球上,科学家们发现了这个计时器,计时器记录了飞碟从T星到地球所用的时间,格式为:XXHXXMXXS等形式,表示共用了几小时几分几秒。如24H12M37S表示共用了24小时12分钟37秒。因为飞碟的速度非常的快,要精确到秒,科学家想知道共用了几秒时间(注意:也是60分钟为1小时,60秒为1分钟)。 数据输入:
数据从文件shijian.in中读入,只有一行,表示计时器的显示时间,注意计时间显示时
9
间的顺序不是固定的,有时为“XXHXXMXXS”,也有可能为“XXMXXHXXS”、也有可能为“XXSXXHXXM”等,不过有一个共同点就是:H表示小时,M表示分钟,S表示秒(三个字母均为大写)。 数据输出:
结果输出到shijian.out中,只有一个数,表示以秒为单位的数值。结果不超过1000000000. 输入输出样例1: shijian.in 02H12M25S shijian.out 7945
输入输出样例2: shijian.in 12S10H06M shijian.out 36372
【问题分析】
这题就是给你一个时间,把它的单位转化为秒 【算法分析】
这题可以根据第3、6、9位上的单位,求出飞碟从T星到地球用了多少时、多少分、多少秒,然后根据时、分、秒之间的进率求出飞碟从T星到地球用了多少秒 【参考程序】 var n:string;
h,m,s:longint; begin
assign(input,'shijian.in'); assign(output,'shijian.out'); reset(input); rewrite(output); readln(n);
if n[3]='H' then val(n[1]+n[2],h)
else if n[3]='M' then val(n[1]+n[2],m) else val(n[1]+n[2],s); if n[6]='H' then val(n[4]+n[5],h)
else if n[6]='M' then val(n[4]+n[5],m) else val(n[4]+n[5],s); if n[9]='H' then val(n[7]+n[8],h)
else if n[9]='M' then val(n[7]+n[8],m) else val(n[7]+n[8],s); writeln(h*3600+m*60+s); close(input); close(output); end.
10
7、排队接水 问题描述:
“五一”劳动节到了,向阳小学五年级安排了一个小组的同学到文化广场搞清洁。广场边上只有一个水龙头,要求每一个同学带一个桶接水搞清洁,由于每个同学所带的桶大小不同,接满水所用的时间也不同,现在已知每一个同学的桶接满水所需要的时间,要求所有同学都要排队等候接水,注意接满水后的同学马上去搞清洁,不再等候,对于一个排好队的顺序,可以计算出所有同学等候接水的时间的总和。如有4个同学,他们接满水所需的时间分别是5、3、6、7,则第一个同学接水时,第二、三、四个同学都要等5个单位的时间,第二个同学接水时,则第三、四个同学都要等3个单位时间,第三个同学接水时,则第四个同学要等6个单位的时间,所有同学等候的时间共为:5*3+3*2+6*1=27。但如果同学们排队顺序改一下,他们接满水所需的时间分别是7、5、6、3,则所有同学等候的时间共为:7*3+5*2+6*1=37。现在给出每一个同学接满水所需的时间,请你安排一种排队顺序,使得所有同学等候的时间总和为最小,输出这个最小值。 数据输入:
从文件water.in中读入数据,第一行为一个正整数N(1 结果输出到文件water.out中,只有一个数,表示所有同学等候的时间总和的最小值。 输入输出样例: Water.in 4 5 3 6 7 Water.out 25 【问题分析】 这题就是给你N个同学接满水所需的时间,让你求出所有同学等候时间总和的最小值 【算法分析】 这题可以先对N个同学接满水所需的时间从小到大进行排序,由于N和Y都比较小,所以用什么排序都可以,然后把每个同学接水时,剩下同学等待的总时间加到计数器t中,最后输出t即可。 【参考程序】 var n,i,t:longint; a:array[1..100] of longint; procedure try(l,r:longint); var i,j,x,t:longint; begin i:=l; j:=r; x:=a[(l+r) div 2]; repeat while a[i] 11 if i<=j then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; inc(i); dec(j); end; until i>j; if l assign(input,'water.in'); assign(output,'water.out'); reset(input); rewrite(output); readln(n); for i:=1 to n do readln(a[i]); try(1,n); for i:=1 to n do t:=t+a[i]*(n-i); writeln(t); close(input); close(output); end. 12
共分享92篇相关文档