百雞問題

今有雞翁一,值錢伍;雞母一,值錢三;雞鶵三,值錢一。凡百錢買雞百隻,問雞翁、母、鶵各幾何?答曰:雞翁四,值錢二十;雞母十八,值錢五十四;雞鶵七十八,值錢二十六。又答:雞翁八,值錢四十;雞 母十一,值錢三十三,雞鶵八十一,值錢二十七。又答:雞翁十二,值錢六十;雞母四、值錢十二;雞鶵八十 四,值錢二十八。”

簡單的說就是公雞每隻值5 文錢,母雞每隻值3 文錢,而3 只小雞值1 文錢。用100 文錢買100 只雞,問:這100 只雞中,公雞、母雞和小雞各有多少隻?

該題目本質是兩個三元等式,

設公雞、母雞、小雞分別爲x、y、z 只,由題意得:
①……x+y+z =100
②……5x+3y+(1/3)z =100。
有兩個方程,三個未知量,稱爲不定方程組,有多種解。
令②×3-①得:7x+4y=100;
所以y=(100-7x)/4=25-2x+x/4
令x/4=t, (t爲整數)所以x=4t
把x=4t代入7x+4y=100得到:y=25-7t
易得z=75+3t
所以:x=4t
y=25-7t
z=75+3t
因爲x,y,z爲正整數
所以4t大於0
25-7t大於0
75+3t大於0
解得t大於0小於等於25/7 又因爲t爲整數
所以t=1,2,3
x =4;y =18;z =78
當t=2時
x =8;y =11;z =81
當t=3時
x =12;y =4;z =84


#include <stdio.h>
void main()(c++用 int main)
{
int cocks=0,hens,chicks;
while(cocks<=20)
{
hens=0;
while(hens<=33)
{
chicks=100-cocks-hens;
if(5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf("公雞%d只,母雞%d只,小雞%d只\n",cocks,hens,chicks);
hens++;
}
cocks++;
}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章