日期:2014-05-20  浏览次数:20669 次

寻找思路都来看看
1,2,3,4,5,6,7,8,9在九个数字里面取任意的三个数字,不能重复,有多少种取法,比如:比如,1,2,3是一组,1,2,4,是一组,1,2,6是一组

------解决方案--------------------
Java code
   
 public static int getKind(int a[]){
    return a.length*(a.length-1)*(a.length-2)/(3*2*1);
    }
    public static void main(String args[]) {
    System.out.println(getKind(new int[]{1,2,3,4,5,6,7,8,9}));//
    System.out.println(getKind(new int[9]));//跟里边的元素内容无关
    }

------解决方案--------------------
探讨

我大概没说清楚,我的意思是说如何取?当然现在知道多少种取法是比较好的,那如何取呢?比如84种,那把84种都取出来

------解决方案--------------------
Java code
    public static void test(int m, int r)
    {
        int[] a = new int[10];
        int i, j;
        i = 0;
        a[i] = 1;
        while (true)
        {
            if (a[i]-i<=m-r+1)
            {
                if (i==r-1)
                {
                    for (j = 0; j<r; j++)
                        System.out.printf("%4d", a[j]);
                    System.out.printf("\n");
                    a[i]++;
                    continue;
                }
                i++;
                a[i] = a[i-1]+1;
            }
            else
            {
                if (i==0)
                    return;
                a[--i]++;
            }
        }
    }
    public static void main(String[] args)
    {
        test(9, 3);
    }

------解决方案--------------------
Java code
public class Test
{
    private int count=0;
    
    public void getSqu(int a[], int index)
    {
        if(index>2)
        {
            count++;
            for(int i=0; i<3; i++)
               System.out.print(a[i]+" ");
            System.out.println();
            return;
        }
        else
        {
             for(int i=1; i<=9; i++)
             {
                 a[index]=i;
                 if(check(a, index))
                    getSqu(a, index+1);
                 a[index]=0;
             }
        }
    }

    public boolean check(int[] a, int index)
    {
        for(int i=0; i<index; i++)
           if(a[i]==a[index])
              return false;
        return true;
    }

    public static void main(String[] args)
    {
        int[] a=new int[3];
        Test test=new Test();
        test.getSqu(a, 0);
        System.out.println("count="+test.count);
    }
}