php编写程序百马百担问题_编程,百马百担有关问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹...

编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹?

编程,百马百担问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹?

分享到:

------解决方案--------------------

数学解方程就好了!

#include 

int main(void)

{

int Lar = 0, Lit = 0, Nor = 0;

for(Lit = 0; Lit 

{

for( Nor = 0; Nor 

for(Lar = 0; Lar 

if (((Lar + Lit + Nor) == 100) && ((3 * Lar + 2 * Nor + Lit / 2) == 100))

printf("Lar = %d, Nor = %d , Lit = %d \n", Lar, Nor, Lit);

}

return 0;

}

------解决方案--------------------

像这种规模的数据,不优化其实也能秒出的...

无聊了,也写一下:

设大马x匹,中马y匹,小马z匹,则由题设可列方程组:

3x + 2y + z/2 = 100   (1)

x + y + z = 100       (2)

x >= 0                (3)

y >= 0                (4)

z >= 0 && z % 2 == 0  (5)

(1)(2)可化为:

3x + 2y = 100 - z/2   (6)

x + y = 100 - z       (7)

可得

x = 1.5z - 100        (8)

y = 200 - 2.5z        (9)

将(8)(9)带入(3)(4)可得:

200/3 <= z <= 80      (10)

又由(5)可知:

68 <= z <= 80且z为偶数(11)

从而由(11)(8)(9)可以写出如下代码:

#include 

int main()

{

int x, y, z;

for(z = 68; z <= 80; z += 2){

x = (z>>1)*3 - 100;

y = 200 - (z>>1)*5;

printf("大马%d匹,中马%d匹,小马%d匹\n", x, y, z);

}

return 0;

}

------解决方案--------------------

你手动验证下呗#include 

using namespace std;

int main()

{

for(int n1=0;n1<100;n1++){

for(int n2=0;n2<100-n1;n2++){

int n3=100-n1-n2;

if(3*n1+2*n2+n3/2==100 && n3%2==0)//n3可为奇数的话,那么有一匹小马是多余的

cout<

}

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值