c++ 100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担.

2025-04-05 05:56:56
推荐回答(2个)
回答1:

a表示小马挑的担数。

34是个临界值 :因为a=33时,有66匹小马。剩余34匹马和67担货,即使这34匹马全都是中马,挑68担货,数量超了,显然更不可能有大马了。

当a<33的时候同理。

40也是个临界值:a=40,有80匹小马,剩20匹马和60担货,20匹马全是大马正好挑完,没有中马,a>40的时候显然就不合适了。

所以小马有 2*a ,
中马=3*(100-2*a)-(100-a);
大马=100-中马-小马;

回答2:

设小马驮了a担货。则有2a匹小马。设大马X匹, 中马Y匹。
则 X + Y + 2a = 100
3X + 2Y + a = 100
解得:
X = 3a - 100
Y = 200 - 5a

由于X >= 0 即 3a - 100 >= 0 得 a >= 3.333, 由于a取整 a >= 34
由于Y >= 0 即 200 - 5a >= 0 得 a <= 40
综上 34 <= a <= 40