码迷,mamicode.com
首页 > 编程语言 > 详细

字符串模拟大数相加——Java实现

时间:2017-04-27 16:18:57      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:null   stringbu   返回值   class   nbsp   java   编程   stat   str   

本题是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实现

标签:null   stringbu   返回值   class   nbsp   java   编程   stat   str   

原文地址:http://www.cnblogs.com/socrates-lzstu/p/6774682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!