[AHOI2002] 数的朗读

题目描述

春游时小可可结识了刚回国定居的 Sealock。但是 Sealock 在海外出生, 回国后才开始学习汉语。数的朗读成为 Sealock 的一个难题,小可可下决心 教会 Sealock 如何朗读绝对值小于 10 亿的数。 小可可知道汉语中有如下的读数规则: ⑴首先读符号位, 然后读整数部分, 整数部分之后可能出现小数点, 如果有 小数部分则小数点一定出现、并且读出小数点之后读小数部分; ⑵符号位的读法是: (2.1)正数,不论正号“+”是否出现,都不必读出符号位; (2.2)负数的最左边的符号是“-”, 读成“ 负” (以“ F” 来表示“负” ); ⑶整数部分的读法是: 蚌埠, 2002.4.20 AH02SGOI11A1.doc 第1页 2002 年安徽省青少年信息学(计算机)竞赛网上同步赛暨 SGOI 第十一次友谊赛 一试试题 (3.1)如果整数部分不存在或者整数部分全是零则直接读成“零” (以“ 0” 来表示“零” ); (3.2)否则从整数部分中最左边的非零数字开始读起, 然后以十、 百、 千、 万、亿(分别以“ S”、“ B”、“ Q”、“ W”、“ Y”来表示)等数量单位来拼读整 数部分; ⑷整数部分中: (4.1)每一个非零数字都必须结合各个相应的数量单位读出来; (4.2)每一段连续的“零” 只能读成一个“零”, 但是某一段连续的“零”的左侧或者右侧不存在非零数字(这里只考虑整数部分)则这一段“零” 不应该读出来; ⑸如果有小数部分,则首先读“点”(以“ D”来表示“点”),然后从左至右顺序地读出各个小数位。 在读小数部分的时候不可以使用十、 百、 千、 万、亿等数量单位; 但是小数部分的每一个数字都需要读出来, 连续的零不可以读成一个“零”,而应该分别读出; ⑹如果数中有小数点而没有小数部分,则不应该把小数点读出来。 例如, -0020030004.567 应该读成“ F2Q03W04D567”, 000.89 应该读成“ 0D89”。 请你编写程序帮助小可可把给定的数正确地读出来。

输入输出格式

输入格式


文件中以一行的形式存放了一个数(不超过 50 个字符),其绝对值 小于 10 亿。

输出格式


以一行的形式输出这个数的正确读法。

输入输出样例

输入样例 #1

000.89

输出样例 #1

0D89

输入样例 #2

-0020030004.567

输出样例 #2

F2Q03W04D567