天天看点

百鸡问题

今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?答曰:鸡翁四,值钱二十;鸡母十八,值钱五十四;鸡鶵七十八,值钱二十六。又答:鸡翁八,值钱四十;鸡 母十一,值钱三十三,鸡鶵八十一,值钱二十七。又答:鸡翁十二,值钱六十;鸡母四、值钱十二;鸡鶵八十 四,值钱二十八。”

简单的说就是公鸡每只值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++;
}
}
           

继续阅读