题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
package test2;
//以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。
public class BigAdd {
public static void main(String[] args) {
BigAdd bigAdd = new BigAdd();
String solve = bigAdd.solve("1", "99");
System.out.println(solve);
}
public String solve (String s, String t) {
int longLen = s.length()>=t.length() ? s.length():t.length();
//长短字符串确定
String longStr = s.length()>=t.length() ? s:t;
String shortStr = s.length()< t.length() ? s:t;
//将长的和段字符串补齐
StringBuffer short_buffer = new StringBuffer(shortStr);
for (int i = shortStr.length(); i < longStr.length(); i++) {
short_buffer.insert(0,"0");
}
String t1 = short_buffer.toString();
//System.out.println(short_buffer);
int[] res = new int[longLen+1];
int up=0;
StringBuffer buffer = new StringBuffer();
for (int i = longStr.length()-1; i >=0 ; i--) {
int curRes = res[i]+ (longStr.charAt(i)-'0')+(t1.charAt(i)-'0')+up;
buffer.append(curRes%10);
up = curRes / 10;
}
if(up!=0){
buffer.append(up);
}
//System.out.println(buffer.reverse().toString());
return buffer.reverse().toString();
}
}
查看17道真题和解析