百鸡问题解答

本问题记载于中国古代约5—6世纪成书的《张邱建算经》中,是原书卷下第38题,也是全书的最后一题:“今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?答曰:鸡翁四,值钱二十;鸡母十八,值钱五十四;鸡鶵七十八,值钱二十六。又答:鸡翁八,值钱四十;鸡 母十一,值钱三十三,鸡鶵八十一,值钱二十七。又答:鸡翁十二,值钱六十;鸡母四、值钱十二;鸡鶵八十 四,值钱二十八。”该问题导致三元不定方程组,其重要之处在于开创“一问多答”的先例,这是过去中国古算书中所没有的。

 

不定方程:

未知数个数多于方程个数,且对解有一定限制(比如要求解为正整数等)的方程。数论中最古老的分支之一。
研究不定方程要解决三个问题:①判断何时有解。②有解时决定解的个数。③求出所有的解。

见图片喽百鸡解答

 

 

编程实现:

穷举法

main()
{
int i,j,k;
for(i=1;i<=20;i++)
for(j=1;j<=33;j++)
for(k=3;k<=300;k+=3)
if(i*5+j*3+k/3==100 && i+j+k==100) printf("%d %d %d/n",i,j,k);
getch();
}

 

注:getch()的应用在这里,当你直接运行.exe文件时,就不会看不到结果而一闪而过了,他会等待你敲任意键,然后程序关闭。

 

其他

main( )
{
int cocks,hens,chicks;
cocks=0;
while(cocks<=19)
  {
  hens=0;
  while(hens<=33)
    {
    chicks=100-cocks-hens;

  if(5*cocks+3*hens+chicks/3==100&&chicks%3==0)
 printf("%d,%d,%d/n",cocks,hens,chicks);
    hens=hens+1;
    }
  cocks=cocks+1;
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值