请打印出三个数,要求三个数相加等于10的所有可能的组合(可重复)

解决方案 »

  1.   

    最简单就是循环
    for (int i=0; i<10; i++) {
        for (int j=0; j<=10-i; j++) {
            if (i+j > 0 && j!=10) {
                System.out.printf("%d+%d+%d=10\n", i, j, 10-i-j);
            }
        }
    }
      

  2.   

    参考下    public static void t(int num) {
    int[] a = new int[10];
    int sum = 0;
    int i = 0;
    a[i] = 1;
    while (true){
        if (sum < num) {
    sum += a[i];
    a[++i] = a[i - 1] + 1;
        }
        else {
    if (sum == num){
    for(int j=0;j<i;j++)
        System.out.printf("%3d",a[j]);
    System.out.println();
    }
    if(1==i)break;
    i--;
    sum -= a[i] + a[--i]++;
        }
    }
        }
        public static void main(String[] args)  {
            t(10);
        }
      

  3.   

    基本三循环public class Sum { public static void main(String[] args) {

    for(int i=0;i<10;i++){
    for(int n=0;n<10;n++){
    for(int m=0;m<10;m++){
    if(i+n+m==10){
    System.out.println(i+" "+n+" "+m);
    }
    }
    }
    } }}
      

  4.   

    public static void main(String[] args) {
    for(int i=1;i<10;i++) {
    for(int j=1;j<10;j++) {
    for(int k=1;k<10;k++) {
    if(i+j+k==10) {
    System.out.println(i+"  "+j+"  "+k);
    }
    }
    }
    }
    }
      

  5.   

    来个重复的。    public static void t(int num)
        {
    List<Integer> list=new ArrayList<Integer>();
    int[] array=new int[num];
    for(int i=1;i<array.length;i++)
    {
        array[i-1]=i;
    } for(int i=2;i<=num;i++)
    {
        int sum=0;
        list.clear();
        for(int m=0,n=0;m<num-1;)
        {
    sum+=array[n];
    list.add(array[n]);
    if(sum==num&&list.size()==i) System.out.println(list);
    if(n>=num-2 || sum>=num)
    {
        if(list.size()==1)break;
        sum-=list.remove(list.size()-1);
        if(list.size()==1)
        {
    n=++m;
    list.clear();
    sum=0;
    continue;
        }
        n=list.get(list.size()-1);
        sum-=list.remove(list.size()-1);
    }
    if(list.size()>=i)
    {
        sum-=array[n++];
        list.remove(list.size()-1);
    }     }
    }
        }
        public static void main(String[] args)
        {
    t(10);
        }[1, 9]
    [2, 8]
    [3, 7]
    [4, 6]
    [5, 5]
    [1, 1, 8]
    [1, 2, 7]
    [1, 3, 6]
    [1, 4, 5]
    [2, 2, 6]
    [2, 3, 5]
    [2, 4, 4]
    [3, 3, 4]
    [1, 1, 1, 7]
    [1, 1, 2, 6]
    [1, 1, 3, 5]
    [1, 1, 4, 4]
    [1, 2, 2, 5]
    [1, 2, 3, 4]
    [1, 3, 3, 3]
    [2, 2, 2, 4]
    [2, 2, 3, 3]
    [1, 1, 1, 1, 6]
    [1, 1, 1, 2, 5]
    [1, 1, 1, 3, 4]
    [1, 1, 2, 2, 4]
    [1, 1, 2, 3, 3]
    [1, 2, 2, 2, 3]
    [2, 2, 2, 2, 2]
    [1, 1, 1, 1, 1, 5]
    [1, 1, 1, 1, 2, 4]
    [1, 1, 1, 1, 3, 3]
    [1, 1, 1, 2, 2, 3]
    [1, 1, 2, 2, 2, 2]
    [1, 1, 1, 1, 1, 1, 4]
    [1, 1, 1, 1, 1, 2, 3]
    [1, 1, 1, 1, 2, 2, 2]
    [1, 1, 1, 1, 1, 1, 1, 3]
    [1, 1, 1, 1, 1, 1, 2, 2]
    [1, 1, 1, 1, 1, 1, 1, 1, 2]
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]