题解 | #大数加法#
大数加法
https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算两个数之和 * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public String solve (String s, String t) { // write code here //其中存在空字符串的情况 if(s==""||t==""){ return s+t; } //结果 StringBuffer bf = new StringBuffer(); //限定s比t长 String temp = s; s = s.length()>=t.length()?s:t; if(s==t){ t = temp; } StringBuffer bfs = new StringBuffer(s).reverse(); // System.out.println(bfs.toString()); StringBuffer bft = new StringBuffer(t).reverse(); // System.out.println(bft.toString()); int isUp = 0;//是否进位 for(int i=0;i<s.length();i++){ if(i<t.length()){ int tempInt = Integer.parseInt(bfs.charAt(i)+"")+Integer.parseInt(bft.charAt(i)+"")+isUp; // System.out.println(tempInt); isUp = tempInt>=10?1:0; bf.append(tempInt%10); }else{ int tempInt = Integer.parseInt(bfs.charAt(i)+"")+isUp; isUp = tempInt>=10?1:0; bf.append(tempInt%10); } } if(isUp>0){ bf.append(isUp); } return bf.reverse().toString(); } }