您现在的位置:首页 >> 前端 >> 内容

京东2016研发工程师编程题:分苹果

时间:2017/9/8 9:10:18 点击:

  核心提示:京东2016研发工程师编程题:分苹果/*时间限制:3秒空间限制:32768K果园里有一堆苹果,一共n头(n大于1小于9)熊来分,第一头为小东,它把苹果均分n份后,多出了一个,它扔掉了这一个,拿走了自己...

京东2016研发工程师编程题:分苹果

/*
时间限制:3秒
空间限制:32768K

果园里有一堆苹果,一共n头(n大于1小于9)熊来分,第一头为小东,它把苹果均分n份后,多出了一个,它扔掉了这一个,拿走了自己的一份苹果,
接着第二头熊重复这一过程,即先均分n份,扔掉一个然后拿走一份,以此类推直到最后一头熊都是这样(最后一头熊扔掉后可以拿走0个,也算是n份均分)。
问最初这堆苹果最少有多少个。
给定一个整数n,表示熊的个数,返回最初的苹果数。保证有解。

测试样例:
2
返回:3
 */

function appleNum(n) { // n是熊的个数
    var i=1;
    var res=n*i+1; // res-1一定是n的整数倍
    while (!isMin(n,res)){
        res=n*i+1;
        i++;
    }
    return res;
}

// 判断m是否满足 均分、拿走后剩余苹果依然能够均分
// m是总的苹果数
function isMin(n,m) {
    var next=m; // next表示一只熊走后剩余的苹果,初始值设为m总的苹果数

    if(Math.floor((m-1)%n)!==0) // 如果一开始m-1就无法均分,则m不满足题意
        return false;
    for(var i=1;i

Tags:京东 东2 20 01 
作者:网络 来源:SuperYuHuo