用C语言实现“百鸡问题”的求解
《张邱建算经》中,是原书卷下第38题,也是全书的最后一题:「今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?答曰:鸡翁四,值钱二十;鸡母十八,值钱五十四;鸡鶵七十八,值钱二十六。又答:鸡翁八,值钱四十;鸡 母十一,值钱三十三,鸡鶵八十一,值钱二十七。又答:鸡翁十二,值钱六十;鸡母四、值钱十二;鸡鶵八十 四,值钱二十八。」该问题导致三元不定方程组,其重要之处在于开创「一问多答」的先例,这是过去中国古算书中所没有的。
代码如下:
- #include<stdio.h>
- main()
- {
- int cocks = 0;
- int hens,chicks;
- while(cocks <= 19)
- {
- hens = 0;
- while(hens <= 33)
- {
- chicks = 100 - cocks - hens;
- if(5 * cocks + 3 * hens + chicks /3 == 100)
- printf("%d,%d,%d/n",cocks,hens,chicks);
- hens ++ ;
- }
- cocks ++ ;
- }
- getch();
- }
代码非常简单的。关键是要思路清晰。