不多写了,准备每天至少刷一道算法题,刚开始用java刷算法,感觉菜的不行,需要读读别人的代码学习。
String a = "111";
String b = "1";
String l = null, s = null;
int llength = 0, slength = 0;
if (a.length() > b.length()) {
l = a;
s = b;
}else{
l = b;
s = a;
}
llength = l.length();
slength = s.length();
char[] lo = l.toCharArray();
char[] sh = s.toCharArray();
int flag = 0;
for (int i = 0; i < llength; i++) {
if (i < slength) {
if (flag + lo[llength - i - 1] - '0' + sh[slength - i - 1] - '0' >= 2) {
lo[llength - i - 1] = (char) ((flag + lo[llength - i - 1] - '0' + sh[slength - i - 1] - '0') % 2 + '0');
flag = 1;
} else {
lo[llength - i - 1] = (char) ((flag + lo[llength - i - 1] - '0' + sh[slength - i - 1] - '0') + '0');
flag = 0;
}
} else {
if (flag + lo[llength - i - 1] - '0' >= 2) {
lo[llength - i - 1] = (char) ((flag + lo[llength - i - 1] - '0') % 2 + '0');
flag = 1;
} else {
lo[llength - i - 1] = (char) ((flag + lo[llength - i - 1] - '0') + '0');
flag = 0;
}
}
}
String re = new String(lo);
if (flag > 0) {
re = "1" + re;
}
System.out.println(re);