96.分鱼问题2(鱼和框的数量都要平分)

【反思】

1.此类问题属于方程求解问题,利用枚举思想解决问题,采用多个循环,知道能够求解出其他变量为止

2.本题解题步骤:

1)首先明确要获得的结果:甲乙丙每人满、半、空各几个框

2)若已知甲满半框以及乙的满框可以求出剩下的框

3.自己忽略了一个事实:空框的求取不需要额外的循环,因为题目已知有21个框,所以每人必然是7个框,求出了满框和半框,用7减去前两个变量就可以得到空框的数量。所以当求解遇到障碍的时候要多多看几遍题目,是不是自己漏掉了什么条件。

【代码】

#include <stdio.h>

int main()
{
	int x1, y1,z1, x2, y2,z2, x3, y3,z3;

	for (x1 = 0; x1 <= 7; ++x1)
		for (y1 = 0; y1 <= 7; ++y1)
			for (x2 = 0; x2 <= 7; ++x2)
			{
				y2 = 2 * x1 + y1 - 2 * x2;
				x3 = 7 - (x1 + x2);
				y3 = 7 - (y1 + y2);
				z1 = 7 - x1 - y1;
				z2 = 7 - x2 - y2;
				z3 = 7 - x3 - y3;

				if ((x2 * 10 + 5 * y2) == (10 * x3 + 5 * y3) && (y2 >= 0) && (x3 >= 0) && (y3 >= 0))
				{
					printf("甲:满框%d份,半框%d份,空框%d\n", x1, y1, z1);
					printf("乙:满框%d份,半框%d份,空框%d\n", x2, y2, z2);
					printf("丙:满框%d份,半框%d份,空框%d\n", x3, y3, z3);
					printf("\n");
				}
			}

	return 0;
}

【结果】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值