有四个数字,
任意两个相加,任意三个相加,最后四个相加,再加上这四个数字,
放到一个数组里该怎么写啊

解决方案 »

  1.   

    http://61.186.252.131/Expert/topic/1111/1111125.xml?temp=.2843897
      

  2.   

    我知道他的部分意思:
    比如有四个数分别是: A、B、C、D
    任意两个想加就是: A+B,A+C,A+D,B+C,C+D,B+C,B+D,C+D,C+D
    同理可知接下来的两句话的意思。 
    但最“再加上这四个数字”一句怎样理解呢?
      

  3.   

    应该是输入A,B,C,D四个数,输出的数组是
    A,B,C,D, A+B,A+C,A+D,B+C,B+D,C+D,A+B+C,A+B+D,B+C+D,A+B+C+D
      

  4.   

    zebra007(呼呼) 理解力超强啊,应该是这个意思。
    这是课后作业么,我认为你最好自己先做一下,能写多少写多少。遇到实在解决不了的问题再上论坛来,把你已经写好的代码贴上来。
      

  5.   

    代码乱的不想再看了 
    不过结果是对的,呵呵 public class GenSumArray
    {
    int num[];
    int alen=0;
    int finalResult[] = new int[200];

    public GenSumArray(int i,int[] ia){

    num=new int[i];
    for (int j=0 ;j<i ; j++ ) {
    num[j]=ia[j];
    }

    for(int j=0;j<finalResult.length;j++) finalResult[j]=0;
    }

    //打印输入的数
    public void printInput(){
    System.out.print("The Input is :  ");
    for(int i=0;i<num.length;i++) System.out.print("  "+num[i]);
    System.out.println("\n\n");
    }//打印最终结果
    public void printResult(){
    System.out.println("The Final Result is :");
    for(int i=0;i<alen ;i++) System.out.print(" "+finalResult[i]);
    System.out.println("\n\n");
    }//从n个数中取出所有的m个数的组合,并将每个组合的和放入数组finalResult
    public int getCombination(int n,int m){

    if (n<m){ 
    System.out.println("Wrong Parameters: first Param >= Second Param");
    return 0;
    }

    System.out.println("get "+ m + " number from "+ n + " number :");
    int numOfResult=0;

    int result[][]=new int[30][];

    int a[];
    a=new int[m+1] ;
    int i,j;

       for (i=1;i<=m;i++) a[i]=i;
      
       for (;;)
       {
         result[numOfResult] = new int[m];
         int h=0; 
         
         for (i=1;i<=m;i++) {          
          result[numOfResult][h] = num[ a[i]-1 ];      
          h++;
         }
         
         for (int p=0; p<result[numOfResult].length;p++ ){
          System.out.print("  "+result[numOfResult][p]);
          finalResult[alen] = finalResult[alen]+ result[numOfResult][p];
         }
         
         System.out.println("   sum is: "+finalResult[alen]);
         numOfResult++;
         alen++;
         
         for (j=m;j>=1;j--) if (a[j]<n-m+j) break;
         if (j==0) break;
         a[j]++;
         for (i=j+1;i<=m;i++) a[i]=a[i-1]+1;
       }
      
       System.out.println( numOfResult+" result!\n\n");
       return numOfResult;
    }


        public static void main(String args[])
        {    
         int ia[]={1,2,3,4};//这里修改数字 
        
         GenSumArray gsm=new GenSumArray(4,ia);
        
         gsm.printInput();
        
         gsm.getCombination(4,1);
         gsm.getCombination(4,2);
         gsm.getCombination(4,3);
         gsm.getCombination(4,4);
        
         gsm.printResult();
             
        }
        
    }
      

  6.   

    我在那个帖子中已经给出答案了,再转过来吧!!适用于任意个数字   这里是5个 求出所有的组合共 2^5 -1=31中import java.util.Vector;
    public class addfour {
       private static Vector v = new Vector();
       private static int count = 0;
       private static double[] a = {  1, 10, 100, 1000, 10000}; //在这里定义任意长度的数组
       private static double[] b = new double[(int) (Math.round(Math.pow(2.0,
             a.length))) - 1];
       public static void main(String[] args) {
          int n = a.length;
          for (int p = 1; p <= n; p++) {
             //求p个的集合
             find(0, n - p, p);
          }
       }
       private static void find(int ns, int ne, int step) {
          if (step == 0) {
             show();
             v.remove(v.size() - 1);
             return;
          }
          for (int i = ns; i <= ne; i++) {
             v.add(new Integer(i));
             find(i + 1, ne + 1, step - 1);
          }
          if (v.size() > 0)
             v.remove(v.size() - 1);
       }   private static void show() {
          double tot = 0;
          String ret = "";
          for (int k = 0; k < v.size(); k++) {
             int m = ((Integer) v.get(k)).intValue();
             tot += a[m];
             ret += "a[" + m + "]";
             if (k != v.size() - 1)
                ret += "+";
          }
          b[count] = tot;
          System.out.println("b[" + count + "]=" + ret + "  = " + tot);
          count++;
       }
    }
      

  7.   

    package com.test;
    import java.util.ArrayList;public class Test{
       private ArrayList aList = null;
       private String    firstNum  ="";
       private String    secondNum ="";
       private String    addResuld ="";
         
        public void parseData(ArrayList bList){
          ArrayList tempList = new ArrayList();
          ArrayList currList = new ArrayList();
          String    tempStr  = "";
          for(int i=0;i<bList.size();i++){
            firstNum = (String)bList.get(i);
            if(aList==null) aList = new ArrayList();
            aList.add(firstNum);
            int loopNum =aList.size();
            for(int j=0;j<loopNum;j++){
                tempStr = (String)aList.get(j);
                if(tempStr.indexOf(firstNum)>-1) continue;
                aList.add(tempStr+"+"+firstNum);
            }
          }
          
          
        }
        
        public void ShowData(){
           if(aList==null) return;
           for(int i=0;i<aList.size();i++){
              System.out.println((String)aList.get(i)+"\t");
           }
        }
        
        public static void main(String[] args){
           ArrayList list = new ArrayList();
           list.add("A");
           list.add("B");
           list.add("C");
           list.add("D");
           list.add("E");
           list.add("F");
           Test test = new Test();
           test.parseData(list);
           test.ShowData();
        }
    }
    研究了一把,这个可以支持任意个参数
      

  8.   

    应该是这意思吧?
    a  b  c  dresult = ( a+b ) + ( a+c ) + ( a+d ) + ( b+c ) + ( b+d ) + ( c+d ) + ( a+b+c ) + ( a+b+d ) + ( a+c+d ) + ( b+c+d ) + (a+b+c+d)我的理解对吗?
      

  9.   

    可以定义一个Method int add(int[],int counter)
    {System.out.println(i+"data add");
    switch counter
    case 1;  
    {for() break;}
    case 2;  
    {for() break;}case 3;  
    {for() break;}
    ...
    return sum;
      

  10.   

    纯粹的集合论问题,假设一个集合A,用S表示一个集合中所有元素的和,楼主的问题就是当A中元素个数为4的时候A的所有子集的S的集合(去掉A的空子集),元素个数应该为2^4-1=15个