给定两个字符串形式的非负整数 num1
和num2
,计算它们的和。
注意:
num1
和num2
的长度都小于 5100.num1
和num2
都只包含数字0-9
.num1
和num2
都不包含任何前导零。- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
没什么太好的方法,暂时只想到了模拟加法运算来计算:
public String addStrings(String num1, String num2) {
String s="";
char a[]=num1.toCharArray();
char b[]=num2.toCharArray();
int cy=0;//进位标志
int i=a.length-1,j=b.length-1;
for(;i>=0&&j>=0;i--,j--) {
int x=(int)(a[i]-'0');
int y=(int)(b[j]-'0');
int sum=x+y+cy;
System.out.println(x+" "+y+" "+sum);
if(sum>=10)
{
s=(sum%10)+s;
cy=1;
}else {
s=sum+s;
cy=0;
}
}
while(i>=0) {
int x=(int)(a[i]-'0');
int sum=x+cy;
if(sum>=10)
{
s=(sum%10)+s;
cy=1;
}else {
s=sum+s;
cy=0;
}
i--;
}
while(j>=0) {
int x=(int)(b[j]-'0');
int sum=x+cy;
if(sum>=10)
{
s=(sum%10)+s;
cy=1;
}else {
s=sum+s;
cy=0;
}
j--;
}
if(cy==1)
s=1+s;
return s;
}