热心的牛牛
题目描述
牛牛是个非常热心的人,所以他有很多的朋友。这一天牛牛跟他的n个朋友一起出去玩,在出门前牛牛的妈妈给了牛牛k块糖果,牛牛决定把这些糖果的一部分分享给他的朋友们。由于牛牛非常热心,所以他希望他的每一个朋友分到的糖果数量都比牛牛要多(严格意义的多,不能相等)。牛牛想知道他最多能吃到多少糖果?
输入
1 | 2,10 |
输出
1 | 2 |
说明
牛牛可以分给他的两个朋友各4个糖果,这样他能吃到2个糖果,这样能保证他的每个朋友的糖果数都比他多,不存在牛牛能吃到3个或者以上糖果的情况
输入
1 | 3,11 |
输出
1 | 2 |
说明
牛牛可以分给他的3个朋友各3个糖果,这样他能吃到2个糖果,这样能保证他的每个朋友的糖果数都比他多,不存在牛牛能吃到3个或者以上糖果的情况
备注
对于百分之30的数据:1\leq n\leq 100
,n\leq k\leq 1001≤n≤100,n≤k≤100
对于百分之100的数据:1\leq n\leq 1e18,
n\leq k\leq 1e181≤n≤1e18,n≤k≤1e18
函数有两个long long型参数
第一个参数代表题目中的n
第二个参数代表题目中的k
题解
1 | class Solution { |
备注
这题使用JS实现的话,会因为JS的int
的Number.MAX_SAFE_INTEGER
为9007199254740991
(Math.pow(2,53)-1
)。
需要使用BigInt
,或大数处理类。
但是在实际评测中,使用BigInt只能AC 90%
。 具体原因不详。1
2
3
4
5
6
7
8
9
10
11
12
13/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 返回牛牛能吃到的最多糖果数
* @param n long长整型
* @param k long长整型
* @return long长整型
*/
function Maximumcandies( n , k ) {
return parseInt((BigInt(k)-BigInt(n)) / (BigInt(n)+1n));
}
module.exports = {
Maximumcandies : Maximumcandies
};