核心提示:京东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