大數相加

public class BigNumAdd {
 public static void main(String[] args) {
  String num1 = "92345";
  String num2 = "92345";
  String sum = bigNumberAdd(num1, num2);
  System.out.print(sum);
 }
 public static String bigNumberAdd(String f, String s) {
  char[] a = new StringBuffer(f).reverse().toString().toCharArray();
  char[] b = new StringBuffer(s).reverse().toString().toCharArray();
  int len = a.length > b.length ? a.length : b.length;
  int[] sum = new int[len + 1];
  int inc = 0;
  for (int i = 0; i < len; i++) {
   int inta = i < a.length ? a[i] - '0' : 0;
   int intb = i < b.length ? b[i] - '0' : 0;
   inc = inc + inta + intb;
   sum[i] = inc % 10;
   inc /= 10;
  }
  if (inc == 1)
   sum[len] = 1;
  boolean flag = true;
  StringBuffer sb = new StringBuffer();
  for (int i = len; i >= 0; i--) {
   if (sum[i] == 0 && flag)
    continue;
   else
    flag = false;
   sb.append(sum[i]);
  }
  return sb.toString();
 }
}
相關文章
相關標籤/搜索