6323. 将钱分给最多的儿童

181 阅读1分钟

题目:
给你一个整数 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
}