题目:
给你一个整数 money ,表示你总共有的钱数(单位为美元)和另一个整数 children ,表示你要将钱分配给多少个儿童。
你需要按照如下规则分配:
- 所有的钱都必须被分配。
- 每个儿童至少获得
1美元。 - 没有人获得
4美元。
请你按照上述规则分配金钱,并返回 最多 有多少个儿童获得 恰好 **8 美元。如果没有任何分配方案,返回 -1 。
算法:
方法一:分类讨论
我真的服了,wa无数次
func distMoney(money int, children int) int {
if money < children || (children == 1 && money == 4){
return - 1
}
money = money - children
ans := money / 7
if ans < children {
if money % 7 == 3 {
if ans + 1 >= children {
ans --
}
}
} else if ans > children {
ans = children - 1
} else if ans == children && money % 7 != 0 {
ans --
}
return ans
}