题解 | #大数加法#
大数加法
http://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) {
int n1=s.length();
int n2=t.length();
if(s.length()==0)
return t;
else if(t.length()==0){
return s;
}
char[]str=s.toCharArray();
char[]tt=t.toCharArray();
int i=n1-1;
int j=n2-1;
int real=0;
int digit=0;
StringBuffer sb=new StringBuffer();
while((i>=0)&&(j>=0)){
int num1=str[i]-'0';
int num2=tt[j]-'0';
digit=(num2+num1+real)%10;
sb.append(String.valueOf(digit));
real=(num2+num1+real)/10;
i--;
j--;
}
char[]ttttt=str;
if(i<0){
i=j; //交换索引
ttttt=tt;
}
if(real!=0){
while(i>=0){
int num=ttttt[i]-'0';
digit=(num+real)%10;
sb.append(String.valueOf(digit));
real=(num+real)/10;
i--;
}
}
if(real!=0){
sb.append("1");
}
return sb.reverse().toString();
}
}
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
int n1=s.length();
int n2=t.length();
if(s.length()==0)
return t;
else if(t.length()==0){
return s;
}
char[]str=s.toCharArray();
char[]tt=t.toCharArray();
int i=n1-1;
int j=n2-1;
int real=0;
int digit=0;
StringBuffer sb=new StringBuffer();
while((i>=0)&&(j>=0)){
int num1=str[i]-'0';
int num2=tt[j]-'0';
digit=(num2+num1+real)%10;
sb.append(String.valueOf(digit));
real=(num2+num1+real)/10;
i--;
j--;
}
char[]ttttt=str;
if(i<0){
i=j; //交换索引
ttttt=tt;
}
if(real!=0){
while(i>=0){
int num=ttttt[i]-'0';
digit=(num+real)%10;
sb.append(String.valueOf(digit));
real=(num+real)/10;
i--;
}
}
if(real!=0){
sb.append("1");
}
return sb.reverse().toString();
}
}