您的位置:首页 > 其它

输入12345,相应输出一万两千三百四十五的算法

2010-04-13 17:54 323 查看
public class numberic {

public static void main(String[] args){

printNumToChinese(11124267345786l);

}

private static void printNumUnit(int digit){

String[] num_unit = {"十","百","千","万","亿"};

if(digit%8 == 0 && digit != 0)

System.out.print(num_unit[4]);

if((digit - 4)%8 == 0 && digit%8 != 0)

System.out.print(num_unit[3]);

if((digit - 3)%4 == 0)

System.out.print(num_unit[2]);

if((digit - 2)%4 == 0)

System.out.print(num_unit[1]);

if((digit - 1)%4 == 0)

System.out.print(num_unit[0]);

}

private static void printNumToChinese(long num){

String[] chs_num = {"零","一","二","三","四","五","六","七","八","九","十"};

boolean flag = true;//为了标两亿零七百八十跟两亿三百万零七百八十中要不要加万的区别

for(int i = String.valueOf(num).length() - 1; i >= 0; i--){

int n = (int)(num/Math.pow(10, i));

if(num == 0)

break;

if(n != 0)

System.out.print(chs_num
);

if(n != 0){

printNumUnit(i);

}

num = num - n*(long)Math.pow(10, i);

if(n == 0 && i - String.valueOf(num).length() >= 4)

flag = false;

if(i%4 == 0 && n == 0 && flag){

printNumUnit(i);

flag = true;

}

if(i - String.valueOf(num).length() == 0 && n == 0){

System.out.print(chs_num
);

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐