描述
两个字符串形式的长整数相加,返回字符串形式的结果。不能用BigInteger 。
思路
- 困难点
不能采取直接将字符串形式的长整数变为长整数的方式,因为在java中可能无法表示这么大的数(除非用BigInteger ,但是说了不能用)
- 方法1
两个字符串,从后向前,逐位相加,保留进位,将得到的个位数添加到res中,返回res的反转。
- 改进的方法2
可将两个字符串变成同样长度的字符串,再进行诸位相加
代码
- java
* 方法1 原始*
public String addStrings(String num1, String num2) {
int i=num1.length()-1, j=num2.length()-1,jinwei=0;
StringBuilder sb = new StringBuilder("");
while (i>=0 && j>=0) {
int k = i>=0? num1.charAt(i--)-'0':0;
int kk = j>=0? num2.charAt(j--)-'0':0;
int zong = k+kk+jinwei;
jinwei = zong/10;
sb.append(zong%10);
}
if (i>=0) {
while (i>=0) {
int k = num1.charAt(i)-'0';
int zong =