给定两个字符串形式的非负整数 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; }