问题 3840 --报数

3840: 报数

时间限制: 1 Sec  内存限制: 128 MB
提交: 11  解决: 3
[提交][状态][讨论版][命题人:]

题目描述

佳佳同学今年升入小学一年级,在数学课上要学习数字的朗读,朗读绝对值小于20亿的数。朗读的规则如下:

1、首先读符号位,然后读整数部分,整数部分之后可能出现小数点,如果有小数部分则小数点一定出现,并且读出小数点之后读小数部分。

2、符号位的读法是:

1)正数,不论正号“+”是否出现,都不必读出符号位;

2)负数的最左边的符号是“-”,读成“负”(以“F”来表示“负”)。

3、整数部分的读法是:

1)如果整数部分不存在,或者整数部分全是零则直接读成“零”(以“0”来表示“零”);

2)否则从整数部分中最左边的非零数字开始读起,然后以十、百、千、万、亿(分别以“S”、“B”、“Q”、“W”、“Y”来表示)等数量单位来拼读整数部分。

4、整数部分中:

1)每一个非零数字都必须结合各个相应的数量单位读出来;

2)每一段连续的“零”只能读成一个“零”,但是某一段连续的“零”的左侧或者右侧不存在非零数字(这里只考虑整数部分)则这一段“零”不应该读出来;

5、如果有小数部分,则首先读“点”(以“D”来表示点),然后从左至右有顺序地读出各个小数位。在读小数部分的时候不可以使用十、百、千、万、亿等数量单位;但是小数部分的每一个数字都需要读出来,连续的零不可以读成一个“零”,而应该分别读出。

6、如果数中有小数点而没有小数部分,则不应该把小数点读出来。

例如,-0020030004.567应该读成“F2Q03W04D567,000.89应该读成“0D89”。请你编写程序帮助佳佳把给定的数正确地读出来。

输入

仅一行,一个绝对值小于10亿的数(字符的长度不超过50个字符);

输出

仅一行,输出这个数的正确读法。

样例输入

-0020030004.567

样例输出

F2Q03W04D567

来源

 

[提交][状态]