欢迎来到天天文库
浏览记录
ID:37849214
大小:48.50 KB
页数:9页
时间:2019-06-01
《NOIP2013复赛模拟8解题报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、NOIP2008模拟试题1(4P24)普及组1.报数(read.pas/c/cpp)OIP2010模拟试题4(4P36)[题目描述]CG同学又弄到一批新牛,新牛到了农场以后,首先要学习汉语,数的朗读成为新牛的一个难题,朗读绝对值小于10亿的数。新牛们知道汉语中有如下的读数规则:1.首先读符号位,然后读整数部分,整数部分之后可能出现小数点,如果有小数部分则小数点一定出现,并且读出小数点之后读小数部分。2.符号位的读法是:⑴正数,不论正号”+”是否出现,都不必读出符号位;⑵负数的最左边的符号是”-“,读成”负”(以“F”来表示“负”)。3.整数部分的读法是:⑴如果整数部
2、分不存在或者整数部分全是零则直接读成“零”(以“0”来表示“零”);⑵否则从整数部分中最左边的非零数字开始读起,然后以十、百、千、万、亿(分别以”S”、”B”、”Q”、”W”、“Y”来表示)等数量单位来拼读整数部分。4.整数部分中:⑴每一个非零数字都必须结合各个相应的数量单位读出来;⑵每一段连续的“零”只能读成一个“零”,但是某一段连续的“零”的左侧或者右侧不存在非零数字(这里只考虑整数部分)则这一段“零”不应该读出来;5.如果有小数部分,则首先读“点”(以“D”来表示“点”),然后从左至右有顺序地读出各个小数位。在读小数部分的时候不可以使用十、百、千、万、亿等数量
3、单位;但是小数部分的每一个数字都需要读出来,连续的零不可以读成一个“零”,而应该分别读出。6.如果数中有小数点而没有小数部分,则不应该把小数点读出来。例如:-0020030004.567应该读成”F2Q03W04D567”,000.89应该读成”0D89”。请你编写程序帮助新牛把给定的数正确地读出来。[输入数据]输入文件仅一行,存放了一个数(不超过50字符),其绝对值小于10亿.[输出数据]输出文件仅一行,输出这个数的正确读法。[样例输入]-0020030004.567[样例输出]F2Q03W04D567programcz;varst,s,t:string;p,i:
4、integer;beginassign(input,'read.in');reset(input);assign(output,'read.out');rewrite(output);readln(st);ifst[1]='-'thenbegindelete(st,1,1);i:=1;while(i'0')thenbeginwrite('F');break;end;inc(i);end;end;p:=pos('.',st);if(p=0)thenp:=length(st);i:=1;while(st[i]='
5、0')and(i+1
0)and(i<=p)dobegint:='';if(i>3)thenif(st[i-3]>'0')thent:=t+st[i-3]+'Q'elseif(s<>'')and(s[length(s)]<>'0')thent:=t+'0';if(i>2)thenif(st[i-2]>'0')thent:=t+st[i-2]+'B'elseif(t<>'
6、')and(t[length(t)]<>'0')thent:=t+'0';if(i>1)thenif(st[i-1]>'0')thent:=t+st[i-1]+'S'elseif(t<>'')and(t[length(t)]<>'0')thent:=t+'0';if(i>0)thenif(st[i]>'0')thent:=t+st[i]+'';if(t[length(t)]='0')thendelete(t,length(t),1);if(t<>'')thenbegins:=s+t;case(p-i)div4of1:s:=s+'W';2:s:=s+'Y';end;e
7、nd;inc(i,4);end;if(s='')thens:='0';write(s);if(pos('.',st)>0)and(length(st)>pos('.',st))thenwrite('D',copy(st,p+2,length(st)-p-1));writeln;close(input);close(output);end.2.背单词(words)源程序名:words.pas/c/cpp输入文件名:word.in输出文件名:word.out时限:1秒问题描述:英语四级考试临近了,小Y却发现他已经把以前学的单词几乎忘光了。好在现在离考试还有一段时间,
此文档下载收益归作者所有