❶ 怎麼用java編寫一個程序,計算出百錢買百雞一共有幾種方案
/*條件:
*公雞一隻5錢,
*母雞一隻3錢,
*小雞1錢3隻
*/
publicclassTest2
{
publicstaticvoidmain(Stringargs[])
{
intx,y,z;//x代表公雞的數目,y代表母雞的數目,z代表小雞的數目
for(x=1;x<20;x++){//因為只有100錢,最多隻能買20隻公雞,但是全買公雞就達不到100隻
for(y=1;y<33;y++){//因為只有100錢,最多隻能買33隻公雞,但是全買母雞就達不到100隻
if(x*5+y*3<=100){//x*5+y*3等於買公雞和母雞所發費的錢不能超過100錢
z=3*(100-(x*5+y*3));//除掉買公雞、母雞的錢剩下來的就是買小雞的錢,
//買小雞的數目等於買小雞的錢乘以3
if(x+y+z==100){//所有的雞的數目加起來必須等於100隻
System.out.print("公雞、母雞、小雞數目分別是:"+x);
System.out.print(""+y);
System.out.println(""+z);
}
}
}
}
}
}
//我已經運行出來了,還附上了運行出來結果截圖,並進行注釋,請給我加分啊!
❷ 百錢百雞(窮舉演算法)
設公雞、母雞、小雞分別為x、y、z 只,由題意得:
x+y+z =100……①
5x+3y+(1/3)z =100……②
有兩個方程,三個未知量,稱為不定方程組,有多種解。
令②×3-①得:7x+4y=100;
即:y =(100-7x)/4=25-(7/4)x
由於y 表示母雞的只數,它一定是自然數,而4 與7 互質,因此x 必須是4 的倍數。我們把它寫成:x=4k(k 是自然數),於是y=25-7k,代入原方程組,可得:z=75+3k。把它們寫在一起有:
x =4k
y =25 - 7k
z =75+ 3k
一般情況下,當k 取不同數值時,可得到x、y、z 的許多組值。但針對本題的具體問題,由於x、y、z 都是100 以內的自然數,故k 只能取1、2、3 三個值,這樣方程組只有以下三組解:
一、 x =4;y =18;z =78
二、 x =8;y =11;z =81
三、 x =12;y =4;z =84