第四题:红军干粮分配
题目描述
红军行军途中,炊事班需要将 total 份干粮(10 ≤ total≤ 100)分装到两种便携袋中:
l甲袋:每袋固定装 5 份干粮;
l乙袋:每袋固定装 8 份干粮;
要求:
l两种袋子都必须使用(甲袋≥1 个,乙袋≥1 个);
l所有干粮必须恰好装完(无剩余)。
请通过编程找出所有满足条件的甲袋、乙袋数量组合(按甲袋数量从小到大输出),若没有符合条件的组合则输出 None。
输入格式:一行一个整数,表示总干粮份数。
输出格式:有符合条件的组合:每行输出一组 a b(甲袋数量、乙袋数量,空格分隔);
无符合条件的组合:输出 None。
样例输入1:53 | 样例输出1:1 6(换行)9 1 |
样例输入 2:26 | 样例输出 2:2 2 |
样例输入 3:15 | 样例输出 3:None |
解题思路:
设甲袋数量为a,乙袋数量为b,根据题意可得方程:5a+8b=total。其中 a≥1,b≥1,且total在10到100之间。这是一个二元一次不定方程,由于未知数个数多于方程个数,理论上可能有多个解或无解。但根据实际问题的限制(a、b必须是正整数),我们可以通过枚举法找到所有可能的解。
参考答案:

详情见:懂了啵驿站