链接:大数加法__牛客网 (nowcoder.com)
分析:
当作竖式计算
import java.util.*;public class Solution {public String solve (String s, String t) {StringBuffer ret = new StringBuffer();//i是字符串s的最后一个字符的索引int i = s.length() - 1;//j是字符串t的最后一个字符的索引int j = t.length() - 1;//tmp表示进位int tmp = 0;//当s、t、tmp都不为0的时候,表示仍有数字待处理while(i >= 0 || j >= 0 || tmp != 0){//s中有未处理的字符时,使用charAt定位i索引对应的字符,i--确保从低位处理到高位,-'0'是字符转换为整数的操作。if(i >= 0) tmp += s.charAt(i--) - '0';if(j >= 0) tmp += t.charAt(j--) - '0';//求出个位ret.append((char)(tmp % 10 + '0'));//求出进位tmp /= 10;}//反转ret对象,因为是从低位到高位添加的,并转换为字符串类型return ret.reverse().toString();}
}