零花钱
零花钱
题意分析
题意简化,将\(n\)元钱分给两个人,两人拿到的钱是整数,其中一个人的钱必须要多于另一个人,每人至少拿到钱。
思路点拨
因为是多组数据,\(T\)很大,并且\(n\)也很大,循环一个一个去计算多少种方案会超时。
从数学角度来看,其中一个人的钱必须要多于另一个人,也就是当两人钱都相等的时候,这时候不断取一个人的钱\(-1\)给另一个人,就可以构成一种方案。钱平分的时候,实际上前面就已经满足了方案,并且平分钱的这个数字就已经代表前面有多少次方案。
比如奇数\(7\)元,平均钱是\(3.5\),但是两人得到的钱必须是整数。
在此之前分钱的方案有:
- \(1,6\)
- \(2,5\)
- \(3,4\)
共计三种,当奇数钱分发的时候,平均钱向下取整即是全部方案数,再往后增加实际上是重复的。
再来看偶数\(8\)元,平均钱是\(4\),两人得到的钱必须是整数。
在此之前分钱的方案有:
- \(1,7\)
- \(2,6\)
- \(3,5\)
共计三种,当偶数钱分发的时候,平均钱\(-1\)即是全部方案数。

浙公网安备 33010602011771号