有一个旅游团大人小孩共30人,在一家饭店吃饭共花了50元,其中每个小孩吃饭是1元,男的吃饭是3元,女人吃饭是2元,写一个java 程序求出男人,女人,小孩各有多少人??
希望指教

解决方案 »

  1.   

    class Test 
    {
    public static void main(String[] args){
    long t = System.currentTimeMillis();
    for (int i = 0; i <= 30 ; i++){
    for (int j = 0; j <= 30 - i ; j++ ){
    for (int k = 0; k <= 30 - j ; k++ ){
    if (i*3+j*2+k == 50 && i+j+k == 30){
    System.out.println(i + "男人  " + j +"女人  " + k + "小孩");
    }
    }
    }
    }
    long tt = System.currentTimeMillis() - t;
    System.out.println( tt + "毫秒");
    }
    }
      

  2.   

    for (int k = 0; k <= 30 - j ; k++ ){
    应该改为for (int k = 0; k <= 30 - j  - i; k++ )
    这样更快可我运行的结果还是0毫秒
      

  3.   

    IT菜鸟大哥给出的算法复杂度大了点吧。
    for (int i = 0; i <= 50/3 ; i++){
          for (int j = 0; j <= 30 - i ; j++ ){
                 k=30-i-j; 
                 if(i*3+j*2+k==50)
                         System.out.println(i + "男人  " + j +"女人  " + k + "小孩");
          }
    }
    这样改好一点,但也不是很理想,等高手来指正。
      

  4.   

    long t = System.currentTimeMillis();这句有什么作用??????????
      

  5.   

    long t = System.currentTimeMillis() 是取系统当前时间(毫秒数)
    程序运行开始时间 - 程序运行结束时间 = 程序耗时(毫秒数)