编写一java类 利用1圆,2圆,5圆,10圆 求出和为100圆的所有可能的组合

解决方案 »

  1.   

    for(int i = 0; i <= 100; i ++){
       for(int j = 0; j <= 50; j ++){
          for(int k = 0; k <= 20; k ++){
             for(int m = 0; m <= 10; i ++){
                if(i + 2 * j + 5 * k + 10 * n == 100)
                   System.out.println("1元:" + i + "个;2元:" + j + "个;5元:" + k+ "个;10元:" + m + "个")
             }
          }
       }
    }
      

  2.   

    懒的写,copy来改的,是改错了
     for(int m = 0; m <= 10; m ++){
                if(i + 2 * j + 5 * k + 10 * m == 100)
      

  3.   

    这个是以前做的,打印所有和为定值的一定个数数字的组合
    要改成符合楼主的要求,只要用数组把钱的面值存进去代替i
    再用for循环生成n个实例就可以了public class test{
      int aim;
      test(int aim,int len){
        this.aim = aim;
        f(0,1,0,new int[len]);
      }
      void f(int sum,int num,int cur,int list[]){
    System.out.println(sum+" "+aim+" "+num+" "+cur);
        if(sum<aim&&num<aim&&cur<list.length){
          for(int i=num;i<aim;i++){
            list[cur] = i;
            f(sum+i,i,cur+1,list);
          }
        }else if(sum==aim&&cur==list.length){
          for(int i=0;i<list.length;i++)
            System.out.print(list[i]+" ");
          System.out.println();
        }
      }
      public static void main(String args[]){
        new test(10,4);
      }
    }