之前面试的时候遇到的,在面试现场的时候写也不能好好写出来,主要是给了一张纸让写伪代码,但是伪代码写出来真的差点意思,哎~到家以后一下打开编译器,状态一下子就来了,可惜可惜~
下面是完整代码,好像可以实现,目前没有发现bug。
public void testSum() {
String sum = sum("111111111111111555", "4444444555");
System.out.println(sum);
}
private String sum(String a, String b) {
int l1 = a.length();
int l2 = b.length();
int size = Math.max(l1, l2); // 找出最长的字符,以次开始循环
char[] charArray = a.toCharArray();
char[] charArray1 = b.toCharArray();
StringBuilder builder = new StringBuilder();
boolean forward = false; // 是否进位
for (int i = size - 1, j = 0; i >= 0; i--, j++) { // i倒序,j正序获取数字
char c = j >= l1 ? '0' : charArray[l1 - 1 - j];
char c1 = j >= l2 ? '0' : c