大数加法(算法)
目的:将两个String类型的数相加返回一个String类型数据
public String maxAdd(String s,String t){ int tmp=0;//进位数 int sl = s.length()-1; int tl = t.length()-1; StringBuffer sb = new StringBuffer();//返回结果对象 if(sl>=0 || tl>=0 || tmp!=0){ int x = s.charAt(s1--) - '0';//转为十进制数 int y = t.charAt(tl--) - '0';//转为十进制数 int sum = x+y+tmp;//低位相加 sb.insert(0,sum%10);//获取每次最后一位 tmp = sum/10;//获取进位 } return sb.toString(); }
代码分析

(1)首先x=8,y=2,tmp=0;
sum = 8+2+0 = 10;
StringBuffer底层使用char[]

tmp = 1;
(2)x=9,y=1,tmp=1;
sum = 9+1+1 = 11;

tmp = 1;
(3)x=0,y=0,tmp=1;
sum = 0+0+1 = 1;

tmp = 0;
返回110
浙公网安备 33010602011771号