输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
输入格式:
输入在一行中给出一个不超过9位的非负整数。
输出格式:
在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。
输入样例1:
813227345
输出样例1:
iYbQdBcScWhQdBeSf
输入样例2:
6900
输出样例2:
gQjB
挺麻烦的一道题
注意测试数据
0-a
1-b
200-cB
101001000-bYabBWbQ
100101000-bYabSWbQ
100011000-bYabWbQ
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[]dw = new String[10];
dw[1] = "";
dw[2] = "S";
dw[3] = "B";
dw[4] = "Q";
dw[5] = "W";
dw[6] = "S";
dw[7] = "B";
dw[8] = "Q";
dw[9] = "Y";
String[]num = new String[10];
num[0] = "a";
num[1] = "b";
num[2] = "c";
num[3] = "d";
num[4] = "e";
num[5] = "f";
num[6] = "g";
num[7] = "h";
num[8] = "i";
num[9] = "j";
String s = sc.next();
int len = s.length();
if(len==1){ //输入一位数 单独考虑
System.out.println(num[s.charAt(0)-48]);
}
else{
for(int i=0 ;i<len ;i++){
if(s.charAt(i)-48!=0){ //数位上不为0的情况
System.out.print(num[s.charAt(i)-48]+dw[len-i]);
}
else if(i<len-1&&i!=len-5&&(s.charAt(i)-48==0&&s.charAt(i+1)-48!=0)){//数位上是0的情况 有多个连续的0 值输出一个
System.out.print(num[s.charAt(i)-48]);
}
else if(len>5&&i==len-5&&s.charAt(i)-48==0){//万为是0的情况
if(len==9&&s.charAt(1)-48==0&&s.charAt(2)-48==0&&s.charAt(3)-48==0){ //一亿的情况
}else{
System.out.print("W");
}
}
}
}
}
}