import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String money = scanner.next();
System.out.println(getChineseNum(money));
}
public static StringBuilder getChineseNum(String money) {
String[] split = money.split("\\.");
// 小数点左边的数
String left = split[0];
// 小数点右边的数
String right = split[1];
StringBuilder builder = new StringBuilder();
builder.append("人民币");
// 每个数后面应该加的单位
ArrayList<String> unitList = new ArrayList<>();
unitList.add("万");
unitList.add("仟");
unitList.add("佰");
unitList.add("拾");
// 结束单位
unitList.add("亿");
unitList.add("仟");
unitList.add("佰");
unitList.add("拾");
// 结束单位
unitList.add("万");
unitList.add("仟");
unitList.add("佰");
unitList.add("拾");
unitList.add("元");
// 中文的数字表示
HashMap<Character, String> num2ChineseMap = new HashMap<>();
num2ChineseMap.put('0', "零");
num2ChineseMap.put('1', "壹");
num2ChineseMap.put('2', "贰");
num2ChineseMap.put('3', "叁");
num2ChineseMap.put('4', "肆");
num2ChineseMap.put('5', "伍");
num2ChineseMap.put('6', "陆");
num2ChineseMap.put('7', "柒");
num2ChineseMap.put('8', "捌");
num2ChineseMap.put('9', "玖");
char[] charArray = left.toCharArray();
int length = charArray.length;
for (int i = 0, k = unitList.size() - length; i < length; i++, k++) {
String chinese = num2ChineseMap.get(charArray[i]);
String unit = unitList.get(k);
// 注意不存在类似壹拾元这种情况,将壹去掉
if ("壹".equals(chinese) && "拾".equals(unit)) {
builder.append(unit);
continue;
}
// 如果最后一位数是0,则不用读
if ((i == length - 1) && "零".equals(chinese)) {
// 注意只有一位数且还是零的情况,"元"这个单位去掉不添加。如输入0.15
if (charArray.length == 1) {
continue;
}
// 没有零元的表达(如输入100,会出现壹佰零),所以只要元这个单位即可
builder.append(unit);
continue;
}
if ("零".equals(chinese)) {
// 如果"零"后面是"万"或者"亿",去掉"零"
if ("万".equals(unit) || "亿".equals(unit)) {
builder.append(unit);
continue;
}
// 将"零"后面的单位去掉,不然就会出现类似"零佰"这种情况
builder.append(chinese);
continue;
}
builder.append(chinese).append(unit);
}
// 出现多个零替换成1个
String string = builder.toString();
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
if (c == '零') {
int count = 1;
int k = i + 1;
while (true) {
if (k == string.length()) {
break;
}
// 连续的零大于1,替换为1个零即可
if (string.charAt(k) != '零') {
if (count > 1) {
// 切割出多个零的字符串并替换成1个
string = string.replaceFirst(string.substring(i, k), "零");
}
break;
} else {
count++;
}
// 注意每次移动到下一个数
k++;
}
}
}
// 零后面除非是拾,否则将该"零"字符去掉
for (int i = 0; i < string.length() - 1; i++) {
char c1 = string.charAt(i);
char c2 = string.charAt(i + 1);
for (String unit : unitList) {
if ('零' == c1 && unit.charAt(0) == c2 && '拾' != c2) {
string = string.substring(0, i) + string.substring(i + 1);
}
}
}
// 小数点左边的数处理完成
builder = new StringBuilder(string);
// 处理小数点右边的数
char c1 = right.charAt(0);
char c2 = right.charAt(1);
if (c1 == '0' && c2 == '0') {
builder.append("整");
}
if (c1 != '0') {
String s1 = num2ChineseMap.get(c1);
builder.append(s1).append("角");
}
if (c2 != '0') {
String s2 = num2ChineseMap.get(c2);
builder.append(s2).append("分");
}
return builder;
}
}