无if语句实现指定人数分组(含余数组)的方法咨询
实现无条件判断的分组组数计算
直接用纯数学运算公式就能解决,完全不需要if语句:
group_count = (amount + size - 1) // size
公式原理
这个方法利用整数除法的向下取整特性,自动处理有余数和无余数的情况:
- 当总人数
amount能被每组大小size整除时:amount + size -1等于size×组数 + size-1,除以size向下取整后结果就是准确的组数,和直接整除结果一致 - 当总人数不能被每组大小整除时:比如
amount = size×n + r(0 < r < size),amount + size -1就等于size×(n+1) + (r-1),因为r-1小于size,整数除法后结果就是n+1,刚好把余数部分单独算成一组
实际验证
- 11人每组3人:
(11 + 3 - 1) // 3 = 13 // 3 = 4,符合要求 - 12人每组3人:
(12 + 3 - 1) // 3 = 14 // 3 = 4,结果正确 - 5人每组2人:
(5 + 2 - 1) // 2 = 6 // 2 = 3(2组2人+1组1人),符合规则 - 4人每组2人:
(4 + 2 - 1) // 2 = 5 // 2 = 2,结果准确
内容的提问来源于stack exchange,提问作者Nohahhex
相关产品推荐
相关产品推荐

