有两个数组,int a[] ={1,2,3}, b[] = {4,5} 得出的结果是123+45 = 168;求实现两个数组相加的
sum(int value1,int value2)方法?

解决方案 »

  1.   


    public class TestSum {
    public static void main(String args[]){
    int a[] ={1,2,3};
    int b[] = {4,5};
    System.out.println("The sum is: " + sum(a,b));
    }

    public static int sum(int a[],int b[]){
    String stra = "";
    String strb = "";
    for(int i = 0; i < a.length; i++)
    stra += String.valueOf(a[i]);
    for(int i = 0; i < b.length; i++)
    strb += String.valueOf(b[i]);
    return Integer.parseInt(stra) + Integer.parseInt(strb);
    }
    }
      

  2.   

    public class TestSum {
    public static void main(String args[]){
    int a[] ={1,2,3};
    int b[] = {4,5};
    System.out.println("The sum is: " + sum(a,b));
    }

    public static int sum(int a[],int b[]){
    String stra = "";
    String strb = "";
    for(int i = 0; i < a.length; i++)
    stra += String.valueOf(a[i]);
    for(int i = 0; i < b.length; i++)
    strb += String.valueOf(b[i]);
    return Integer.parseInt(stra) + Integer.parseInt(strb);
    }
    }
      

  3.   


    public class SumArray {
    public  int sum(int[] value1,int[] value2){
    return getValue(value1) + getValue(value2);
    } public int getValue(int[] value){
       int number = 0;
       if(null != value && value.length > 0){
       StringBuffer numberBuffer = new StringBuffer();
       for(int i = 0; i< value.length;i++){
       numberBuffer.append(value[i]);    
       }
       number  = Integer.parseInt(numberBuffer.toString());
       }
       return number;
    }
    public static void main(String args[]){
    int[] value1 = {9,2,4};
    int[] value2 = {5,2,0};
    SumArray sumArray = new SumArray();
    System.out.println(sumArray.sum(value1,value2));
    }
    }
      

  4.   

    如果访问时数据量比较大,是否应该转为long类型,或者哪个算法会比较好点~
      

  5.   

    另外一种常规思维的方法public class SumTest
    {
      public static void main(String[] args)
      {
        int[] a = {1, 2, 3};
        int[] b = {4, 5};
        System.out.println(sum(a, b));
      }
      
      public static long sum(int[] a, int[] b)
      {
        long A = 0;
        long B = 0;
        for (int i = a.length - 1, j = 0; i >= 0; i--, j++)  
          A += a[i] * Math.pow(10, j);
        for (int i = b.length - 1, j = 0; i >= 0; i--, j++)
          B += b[i] * Math.pow(10, j);
        return (A + B);
      }
    }
      

  6.   

    public class Test1 {    public static void main(String[] args) {
            int[] a = { 1, 2, 3 }, b = { 4, 5 };
            int k = sum(a, b);
            System.out.println(k);
        }    public static int sum(int[] num1, int[] num2) {
            int j = num1.length - 1;
            int k = num2.length - 1;
            int up = 0;
            int sum = 0;
            int mul = 1;
            while (j > -1 || k > -1) {
                int n = (j < 0 ? 0 : num1[j--]) + (k < 0 ? 0 : num2[k--]) + up;            
                sum += n % 10 * mul;
                up = n / 10;
                mul *= 10;
            }
            return sum;
        }
    }
      

  7.   

    public static int SUM(int a[],int b[]){
    int size = (a.length > b.length ? a.length : b.length) ;
    int sum = 0 ;
    int sub = 0 ; //进位标志
    int temp ;
    for(int i = size - 1 , k = 0 ; i >= 0 ; i-- , k++){
    if( k >= a.length){
    if(sub == 1){
    sum += (int)(b[i] + 1) * Math.pow(10, size - i - 1) ;
    sub = 0 ;
    }
    else{
    sum += (int)(b[i] * Math.pow(10, size - i - 1)) ;
    }
    }
    else if(k >= b.length){
    if(sub == 1){
    sum += (int) ((a[i] + 1) * Math.pow(10, size - i - 1)) ;
    sub = 0 ;
    }
    else{
    sum += (int)(a[i] * Math.pow(10, size - i - 1)) ;
    }
    }
    else{
    if(sub == 1){
    temp = a[a.length - k - 1] + b[b.length - k - 1] + 1;
    sub = 0 ;
    }
    else{
    temp = a[a.length - k - 1] + b[b.length - k - 1] ;
    }
    if(temp >= 10){
    sub = 1 ;
    }
    sum += (temp % 10) * Math.pow(10, size - i - 1);
    }
    }
    return sum;
    }
      

  8.   

    public class SumTest {
    public static void main(String[] args){
    int[] a ={1,2,3},b={4,5};
    sum(a,b);
    }

    public static int sum(int[] a,int[] b){
    StringBuffer sa = new StringBuffer();
    StringBuffer sb = new StringBuffer();
    for(int i=0;i<a.length;i++){
    sa.append(a[i]);
    }
    for(int i =0;i<b.length;i++){
    sb.append(b[i]);
    }
    return Integer.parseInt(sa.toString())+Integer.parseInt(sb.toString());

    }
    }