有1000只鸡在10个鸡笼,实现当随机给出1000以内数值N时,哪几个鸡笼的鸡数正好是N

解决方案 »

  1.   

    说实话,分有一点点少...package com.ce.exam;public class Chicke { /**
     * @param args
     */
    public static void main(String[] args) {

    int total = 800; //假设随机数N=800,你可以用IO的知识受用户输入此处你自己改进,我只做Demo
    //一些提示语句你自己去写
    for(int a= 0 ;a <=1000; a++){
    for(int b = 0 ; b <= 1000;b++){
    for(int c= 0; c<=1000;c++){
    for(int d= 0;d<=1000 ; d ++){
    for(int e = 0 ; e <= 1000 ; e ++){
    for(int f = 0 ; f <= 1000; f++ ){
    for(int g = 0 ; g<=1000; g++){
    for(int h=0; h<= 1000 ;h++){
    for(int i=0; i<=1000; i++){
    for(int j=0;j<=1000;j++){
    if(a+b+c+d+e+f+g+h+i+j == 1000){
    Integer[] arr ={a,b,c,d,e,f,g,h,i,j};
    int sum = 0;
    for(int x = 0 ; x< 10;x++){
    sum+=arr[x];
    if(sum==800){

    for(int y=0;y<=x;y++){
    //为0则说明里面没鸡
    if(arr[y]!=0)
    System.out.print("arr["+y+"]===" + arr[y]);
    }
    System.out.println("\n\r");

    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    } }}
      

  2.   

    数组的下标+1,代表是第几个鸡笼....你可以在打取出方案的前面,每个鸡笼里面的鸡的数量打量出来 看看..
    比如说打印出来 效果是这样的:
    有如下几种方法:
    鸡笼里鸡的分部是: 第一个笼为:XX 第二笼为:XX.......第十....  此时取出方法为:....
    鸡笼里鸡的分部是: 第一个笼为:XX 第二笼为:XX.......第十....  此时取出方法为:....
    鸡笼里鸡的分部是: 第一个笼为:XX 第二笼为:XX.......第十....  此时取出方法为:....
    ...
    ...
    这样就比较人性化,这个东西就留给你自己了..