题意:牛牛有k颗糖,要和n个朋友分享,且每个朋友得到的糖果要比牛牛多,求牛牛最多能得到几颗糖果。
我的想法:一共有n+1个人,将k颗糖平均分成n+1份;当k%(n+1)==n 时,将剩余的n颗糖,n个朋友每人再拿一颗,牛牛拿k/(n+1)颗(在平均的情况下,每个朋友都只比牛牛多一颗)。当k%(n+1)< n 时,牛牛最多只能拿k/(n+1)-1颗(在平均的情况下,牛牛比任意朋友至少少一颗)。
由于题目给的k>=n,容易推知,当k%(n+1)< n 时,k/(n+1)-1>=0。
本菜代码
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回牛牛能吃到的最多糖果数 * @param n long长整型 * @param k long长整型 * @return long长整型 */ long long Maximumcandies(long long n, long long k) { // write code here if(k%(n+1)==n) return k/(n+1); else return k/(n+1)-1; } };