题解 | #大数加法#
大数加法
http://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
import java.util.*;
//JAVA 大数相加。不能简单的只把string类型转化成int,会超过int的范围.
//应该模拟加法的运算规则,
//两数相加 >10进1. 前面的数在做加运算会加上这个进的1,所以用一个变量去接住。
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
int i = s.length()-1;
int j = t.length()-1;
int carry =0;
StringBuilder stringBuilder = new StringBuilder();
while(i>=0 || j>=0 || carry !=0){
int x = i<0? 0:s.charAt(i--) - '0';
int y = j<0? 0:t.charAt(j--) - '0';
int sum = x + y + carry;
stringBuilder.append(sum % 10); //添加到字符串尾部
carry = sum / 10; //sum大于10进1 小于10为0
}
return stringBuilder.reverse().toString(); //对字符串反转
}
}
查看21道真题和解析
