百钱买百鸡怎么用java写程序

Python017

百钱买百鸡怎么用java写程序,第1张

百钱买百鸡问题的Java程序如下

public class chick {

  public static void main(String[] args) {

   int i//母鸡

   int j//公鸡

   int k//小鸡

   int num = 0//一共有几种  

   for(i=0i<=100/5i++)

   {

    for(j=0j<=100/3j++)

    {

     for(k=0k<=100k=k+3)

     {

      if(i+j+k == 100 && ((5*i+3*j+k/3) == 100))

      {

       num++

       System.out.println("第"+num+"种情况")

       System.out.println("母鸡数"+i+"  "+"公鸡数"+j+"  "+"小鸡数"+k)

      }        

     }    

    }     

   }   

  }

}

运行结果

第1种情况

母鸡数0  公鸡数25  小鸡数75

第2种情况

母鸡数4  公鸡数18  小鸡数78

第3种情况

母鸡数8  公鸡数11  小鸡数81

第4种情况

母鸡数12  公鸡数4  小鸡数84

第二种情况下

你有没有发现

你的循环条件变了?小鸡32只,公鸡100只,母鸡200只。这样已经超过了一百元了

,你解决的不是百元买百鸡的问题了!还有这个循环执行了次数是不同的!因为这个i

*

0.5

+

j

*

2

+

k

*

3的值

将很快到达一百!

java不会,写个c的,方法是一样的。

一百块可以买公鸡20只,母鸡33只,鸡仔100只。也就是说这三种鸡无论怎么组合,公鸡不可能超过20,母鸡不可能超过33,鸡仔不可能超过100。所以一个三重for循环就可以遍历所有组合,找出符合要求的组合。而且,你题目不完整,给你一个100钱能买的鸡的所有组合。如果要百钱买百鸡的话,把if语句的条件换成i+j+k==100即可。

for(int i=0i<=20++i)

    for(int j=0j<=33++j)

        for(int k=0k<=100++k)

            if(5*i+3*j+k==100)

                printf("公鸡%d只,母鸡%d只,鸡仔%d只",i,j,k)