已知
List list=new ArrayList();
list.add(new Integer[]{3,4});
list.add(new Integer[]{8});
list.add(new Integer[]{2,3});
这个list有两个元素,
第一个元素可以为3,或者为4,
第二个元素为8,
第三个元素可以为2,或者为3,或者4,
求算法可以得到4总可能的数值总和,
这个例子的结果应该算出4种结果为:
13(3+8+2)
14(4+8+2)
14(3+8+3)
15(4+8+3)我举的这个例子比较简单, 
意思应该说明白了吧..

解决方案 »

  1.   

    不明白楼主要做什么,但是下面程序可以有楼主要的输出结果:
    import java.util.*;public class test {
      public static void main(String args[]){
        List list=new ArrayList();
        list.add(new int[]{3,4});
        list.add(new int[]{8});
        list.add(new int[]{2,3});
        int[] a = (int[])list.get(0);
        int[] b = (int[])list.get(1);
        int[] c = (int[])list.get(2);
        int i,j,k;
        for(i=0;i<a.length;i++)
        {
          for(j=0;j<b.length;j++)
          {
            for(k=0;k<c.length;k++)
            {
              System.out.println(a[i]+"+"+b[j]+"+"+c[k]+"="+(a[i]+b[j]+c[k]));
            }
          }
          
        }
      }
    }
    输出:
    3+8+2=13
    3+8+3=14
    4+8+2=14
    4+8+3=15
      

  2.   

    楼上,那我再list.add(new int[]{1,2,3,4,5,6,7,8,9,10});
    list.add(new int[]{3,4,5,6,7,8,9,10,11,12,23});
    list.add(new int[]{13,24,35,46,57,48,39,110,311,412,523});
    ...你再给我把算法按你的逻辑写一下 - -
      

  3.   

    呵呵,楼主考我,给个递推程序吧!
    我直接用2维数组了。
    import java.util.*;public class test {
      public static void add(int a[][])
      {
        
        int[] arr = a[0];
        String[] s = new String[a[0].length];
        for(int i=0;i<a[0].length;i++)
          s[i]=String.valueOf(a[0][i]);
          
        for(int i=1;i<a.length;i++)
        {
            int[] b=new int[arr.length*a[i].length];
            String[] bs=new String[s.length*a[i].length];
            for(int k=0;k<arr.length;k++)
            {
                for(int m=0;m<a[i].length;m++)
                {
                    b[k*a[i].length+m]=arr[k]+a[i][m];
                    bs[k*a[i].length+m]=s[k]+"+"+a[i][m];
                }
            }
            arr=b;
            s=bs;
        }
        
        for(int i=0;i<arr.length;i++)
          System.out.println(s[i]+"==="+arr[i]);
      }
      public static void main(String args[]){
         int a[][]={{3,4},{8,10,10},{2,3},{1}};
         add(a);
      }
    }
      

  4.   

    呵呵~~~
    另类的饿!~
    看看来:
    数据库建表:
    a:   
    列:colA    
    值:1
        2
        3
        4
        5...b:   
    列:colB    
    值:11
        12
        13
        14
        15...c:   
    列:colC    
    值:31
        32
        33
        34
        35...
    然后: select (a.colA+b.colB+c.colC) LastValue from a, b, c
    就是结果~
    ^_^