输入为两个String类型的大数,求这两个数之和
代码如下(原理代码注释中有说明):
public class BigNumAdd {
public String add(String num1,String num2){
//将两个数转化为数组
char[] chars1 = num1.toCharArray();
char[] chars2 = num2.toCharArray();
//用来存放结果,结果的长度一定是等于最大那个数的长度或者其长度加1
int[] res = new int[Math.max(chars1.length,chars2.length)+1];
int count = 0;
int idx1=chars1.length-1,idx2=chars2.length-1;
//对应位置上相加,如果一个数长度大于另一个,在计算时,超过短的那个数的长度时,令其为0
//例如,123+26,对应就是3+6,2+2,1+0;
for(int i=res.length-1;i>=0;i--){
int a = (count>=chars1.length)?0:(chars1[idx1--]-'0');
int b = (count>=chars2.length)?0:(chars2[idx2--]-'0');
count++;
res[i] = a+b;
}