大数加法:
以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。(字符串长度不大于100000,保证字符串仅由'0'~'9'这10种字符组成)
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
String m = revert(s);
String n = revert(t);
StringBuffer result = new StringBuffer();
int carry = 0;
int length = 0;
if(m.length()>n.length()){
length = m.length();
}else{
length = n.length();
}
for(int i = 0 ;i< length; i++){
int ni = i <= n.length()-1 ? Integer.valueOf(n.charAt(i)+"") : 0;
int mi = i <= m.length()-1 ? Integer.valueOf(m.charAt(i)+"") : 0;
Integer sum = mi+ni+carry;
carry = sum/10;
sum = sum%10;
result.append(sum);
}
if(carry > 0){
result.append(String.valueOf(carry));
}
return revert(result.toString());
}
/**
* 字符串反转
*/
public String revert(String str){
char[] result = str.toCharArray();
int start = 0;
int end = result.length-1;
while(start<end){
char temp = result[end];
result[end] = result[start];
result[start] = temp;
start++;
end--;
}
return new String(result);
}