整数转换中英文形式
来源:互联网 发布:fifaol3数据库超级玩家 编辑:程序博客网 时间:2024/05/12 14:14
前段时间参加了兴业银行信息科技部的面试,第一场是上机笔试,前面的题目不知道是啥,什么HP服务器架构,X86芯片等等,反正不懂,随便乱选,真不明白他们搞这样的笔试意义何在。最后两道是编程题,其中一个是数字转换,当时匆匆忙忙也没写好,今天闲下来了,随便写了些,并写了中英文转换两个版本。
思路是这样的,假如有1234567890这么一个数字,那么中文的形式是这样的:
1234567890=(12)億+(3456)万+(7890)
那么英文形式是这样的:
1234567890=(1)billion+(234)million+(567)thousand+(890)
有了这个以后,那剩下的就好说了,括号内部的中文形式的四位数字或者英文三位数字的转换就简单多了。
数字转中文:
public class NumberConvertToChinese { public static String[] digits = {"壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; public static String[] bigs = {"", "万", "億"}; public static String numToString(int number) { if (number == 0) { return "零"; } else if (number < 0) { return "负" + numToString(-1 * number); } int count = 0; String str = ""; while (number > 0) { if (number % 10000 != 0) { str = numToString1000(number % 10000) + bigs[count] + str; } number /= 10000; count++; } return str; } public static String numToString1000(int number) { String str = ""; if (number >= 1000) { str += digits[number / 1000 - 1] + "仟"; number %= 1000; } if (number >= 100) { str += digits[number / 100 - 1] + "佰"; number %= 100; } if (number >= 10) { str += digits[number / 10 - 1] + "拾"; number %= 10; } if (number >= 1 && number <= 9) { str += digits[number - 1]; } return str; } public static void main(String[] args) { System.out.println(numToString(1234567890)); }}
数字转英文:
public class NumberConvert { public static String[] digits = {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}; public static String[] teens = {"Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"}; public static String[] tens = {"Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"}; public static String[] bigs = {"", "Thousands", "Million"}; public static String numToString(int number) { if (number == 0) { return "Zero"; } else if (number < 0) { return "Negative " + numToString(-1 * number); } int count = 0; String str = ""; while (number > 0) { if (number % 1000 != 0) { str = numToString100(number % 1000) + bigs[count] + " " + str; } number /= 1000; count++; } return str; } public static String numToString100(int number) { String str = ""; if (number >= 100) { str += digits[number / 100 - 1] + " Hundred "; number %= 100; } if (number >= 11 && number <= 19) { return str + teens[number - 11] + " "; } else if (number == 10 || number >= 20) { str += tens[number / 10 - 1] + " "; number %= 10; } if (number >= 1 && number <= 9) { str += digits[number - 1] + " "; } return str; } public static void main(String[] args) { System.out.println(numToString(123456789)); }}
参考资料:
《Cracking the coding interview》
阅读全文
0 0
- 整数转换中英文形式
- 将任一整数转换为二进制形式
- 整数转换成指定位字符串形式
- 华为: 识别字符串中的整数并转换为数字形式
- 识别字符串中的整数并转换为数字形式
- 识别字符串中的整数并转换为数字形式
- 识别字符串中的整数并转换为数字形式
- 识别字符串中的整数并转换为数字形式
- 识别字符串中的整数并转换为数字形式
- 中英文转换
- 中英文转换
- 如何在字符串形式的IP和整数形式的IP之间转换呢?
- NFA转换成DFA——汉字形式数字转换成整数数字
- 二进制形式打印整数
- C语言中的位操作例子(将任一整数转换为二进制形式)
- 顺计时器,将整数转换成分:秒(00:00)形式的时间格式字符串
- 关于浮点数转换为整数的(int )和(int &)形式
- C语言中的位操作例子(将任一整数转换为二进制形式)
- 智能注塑工艺与模流分析技术研讨会暨上海大学Moldex3D实训基地开幕式圆满结束
- STM32 PB4不能做普通IO解决方法
- yii2自定义表单使用验证码
- 数据结构之 KMP算法
- 俄罗斯方块—C语言
- 整数转换中英文形式
- PropertyPlaceholderConfigurer 使用
- ES6这些东东要记牢
- nc用法2,使用nc传输文件和目录
- 详细解释数据挖掘中的 10 大算法
- EA使用(三):数据库逆向工程
- 如何将APP应用设置成系统级应用
- RecyclerView 使用步骤
- 解决mac下eclipse闪退问题