输入一个整数(位数不超过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"); }}}}}
}