面试算法1

两个整数求和

String a = "893333.....3333";

String b = "349......999";

求 a + b;

由于数字太长,只能存在String 里,不能整体转成int/long来加,只能一位一位的转成int来加,注意进位。

用一个for循环按每一位做加法,最后输出到一个String里。

/**
*  如何将char类型的数字转换成int型的数字
*  StringBuffer 追加时,可以 在前面 追加吗
* @param a
* @param b
* @return
*/
public static String sumLargeInt(String a,String b){
     int a1=a.toCharArray();
     int a2 = b.toCharArray();
  
    int i1= a1.length;
    int i2 =a2.length;

    int i11 = 0;//记录每次取出来的数
    int i22 = 0;//
    StringBuffer sb = new StringBuffer();
   int shi = 0;//记录十位
    for(int i=0;i<(i1>i2?i1:i2);i++){
        int t1 = i11-i-1;
        int t2=  i22-i-1;
        if(t1>=0){
           i11 = a[t1];   
           }else{
          i11=0;
         }

         if(t2>=0){
           i22 = a[t2];   
           }else{
          i22=0;
         }

    int temp=i11+i22+shi;
  
    if(temp>10){
        sb.insert(0,temp%10);
        shi=1;
    }else{
      sb.insert(0,temp);
       shi=0;
        }
   }
    if(shi>0){
         sb.insert(0,shi);
          }

        return sb;

}

你可能感兴趣的:(面试算法1)