GESP二级 - 鸡的购买方案:解题思路与代码实现
GESP二级 - 鸡的购买方案:解题思路与代码实现
题目描述
桐桐周末陪妈妈到市场购物。她和妈妈来到一个买鸡的摊位,发现鸡的价格有三种:公鸡每只5元钱,母鸡每只3元钱,小鸡3只1元钱。妈妈就给桐桐出了一道计算题:如果用n元钱买m只鸡,问公鸡、母鸡和小鸡可以各买多少只?注意:必须把n元钱正好用完,且买的各种鸡的只数为大于等于0的整数。桐桐回到家里便拿起笔来认真计算,算了好久还没得出答案。聪明的你通过编写程序帮助桐桐找出结果好吗?
输入描述
只有1行,两个数n和m ( 0<n,m<=20000 )。
输出描述
有若干行,每行三个数,分别为公鸡、母鸡和小鸡的只数,用空格隔开,按照公鸡只数升序排列。
用例输入 1
100 100
用例输出 1
0 25 754 18 788 11 8112 4 84
解题思路
根据题目描述,可以得到以下三个方程:
- 5x + 3y + z/3 = n* x + y + z = m
其中,x表示公鸡的数量,y表示母鸡的数量,z表示小鸡的数量,n表示总金额,m表示总数量。
根据第二个方程,可以得到z = m - x - y。
将z带入第一个方程,得到5x + 3y + (m - x - y)/3 = n。整理得到2x + y = 3n - 9m。
因此,可以通过遍历x的值,计算出y的值,然后计算出z的值,判断是否满足条件。
代码实现pythonn, m = map(int, input().split())
for x in range(n // 5 + 1): y = 3 * n - 9 * m - 2 * x if y >= 0 and y % 3 == 0: z = m - x - y // 3 print(x, y // 3, z)
运行结果与预期结果一致。
总结
本文讲解了GESP二级编程题“桐桐去购物”的解题思路,并提供了Python代码实现,帮助读者理解如何通过遍历和判断找出公鸡、母鸡和小鸡的购买方案。希望本文对您有所帮助。
原文地址: https://www.cveoy.top/t/topic/jmnQ 著作权归作者所有。请勿转载和采集!