C语言编程:有100匹马驮100担货大马驮3担中马驮2担2匹小马分驮1担问大、中、小马各多少匹?大、中、小马的匹数均不得为0
设大马、中马、小马的匹数分别为x、y、z,则有以下方程组:
x + y + z = 100 (总匹数为100) 3x + 2y + 0.5z = 100 (总载重量为100)
为了消去小马的小数,将方程组乘以2,得:
2x + 2y + 2z = 200 6x + 4y + z = 200
将第一个方程式乘以4,得:
4x + 4y + 4z = 400
将第二个方程式减去第一个方程式,得:
4x + 2y - 3z = 0
将上述两个方程组合起来,得:
4x + 4y + 4z = 400 4x + 2y - 3z = 0
用第二个方程解出y,得:
y = (3z - 4x) / 2
将y代入第一个方程,得:
x + (3z - 4x) / 2 + z = 100
化简得:
-2x + 2z = 100
解出z,得:
z = (100 + 2x) / 2 = 50 + x
将z代入y的式子,得:
y = (3(50 + x) - 4x) / 2 = (150 - x) / 2
因为大、中、小马的匹数均不得为0,所以x、y、z均为正整数。根据上述方程,可以列出以下可能的正整数解:
(x,y,z) = (1,74,51),(2,71,52),(3,68,53),(4,65,54)……
其中,只有(18,17,65)符合条件,即大马18匹,中马17匹,小马65匹。
原文地址: https://www.cveoy.top/t/topic/bA8W 著作权归作者所有。请勿转载和采集!