字符串模拟大数相加——Java实现
2017-04-27 15:58
225 查看
本题是CVTE二面编程题,首先考虑返回值肯定是一个字符串(int会有溢出可能),并且两个字符串只含数字,不含”+“、”-“这种。
代码如下:
代码如下:
1 public static String add(String str1, String str2) { 2 if(str1 == null) 3 return str2; 4 if(str2 == null) 5 return str1; 6 StringBuffer s1 = new StringBuffer(str1).reverse(); 7 StringBuffer s2 = new StringBuffer(str2).reverse(); 8 StringBuffer res = new StringBuffer(); 9 int len1 = s1.length(); 10 int len2 = s2.length(); 11 int len; 12 if(len1 < len2) { 13 len = len2; 14 int count = len2 - len1; 15 while(count-- > 0) 16 s1.append('0'); 17 } else { 18 len = len1; 19 int count = len1 - len2; 20 while(count-- > 0) 21 s2.append('0'); 22 } 23 int overflow = 0; 24 int num; 25 for(int i = 0; i < len; i++) { 26 num = s1.charAt(i) - '0' + s2.charAt(i) - '0' + overflow; 27 if(num >= 10) { 28 overflow = 1; 29 num -= 10; 30 } else { 31 overflow = 0; 32 } 33 res.append(String.valueOf(num)); 34 } 35 if(overflow == 1) 36 res.append(1); 37 38 return res.reverse().toString(); 39 }
相关文章推荐
- 用字符串模拟两个大数相加——java实现
- 用字符串模拟两个大数相加——java实现
- 用字符串模拟两个大数相加——java实现
- java实现两个大数相加,可能出现溢出错误
- 大数相加,分别用C++和Java实现
- C/C++和JAVA 实现大数相加
- Java不使用BigDecimal,实现两个大数相加
- Java字符串的大数加法和乘法实现
- 用字符串实现大数的相加,没有考虑存在负数的情况
- 面试常见题目:大数相加的Java实现(考虑负数情况)
- leetcode_415(两个数字字符串相加,模拟大数相加)
- codewars打怪升级日记 用JavaScript实现大数相加 /像数字一样加数字型字符串
- 大数字符串的四则运算之加法----Java代码实现
- 数据结构Java实现——①栈-->栈的应用一、大数相加
- java机试-用字符串模拟两个大数相加
- java中用ArrayList类实现正整数大数相加与相乘
- java实现大数相加问题
- 高精度问题之大数相加(原来就是用字符串相加,模拟手算这么简单!)
- java实现两个超大数相加,字符串实现
- Java利用字符串实现整数格式相加求和