题目大意
买了 555 种菜,每个菜的重量分别为 a,b,c,d,ea,b,c,d,ea,b,c,d,e (单位: KG),需要将菜分割后装到一定数量的口袋中,每个口袋可以装的重量上限是 XXX KG,只有在一个口袋装满的情况下,超市才会提供一个新的口袋,求最后一个使用的口袋所装物品的重量。
题意分析
将买的 555 种菜装到口袋中,每个口袋都会装满,求最后一个使用的口袋所装物品的重量,最后一个口袋可能正好装满。
解题思路
最后一个口袋有两种情况:
1. 正好装满
2. 没装满
只需要用菜品重量总和对口袋称重上限求余。如果余数为 000,说明正好装满,输出 XXX,否则输出余数即可。
由于菜品重量之和可能超于 long long 范围,所以不能直接求和,根据余数的性质依次求即可。
余数的性质
(a+b) mod m=((a mod m)+(b mod m)) mod m(a + b)\ mod\ m = ((a\ mod\ m) + (b\ mod\ m))\ mod\ m(a+b) mod m=((a mod m)+(b mod m)) mod m
时间复杂度解析
本题执行时间不受输入影响,因此时间复杂度为 O(1)O(1)O(1)
代码演示