您的位置:首页 > 编程语言

京东校招编程题——小熊分苹果

2015-09-18 21:46 232 查看
刚做完京东校招在线笔试,第一道编程题居然没做出来,开始时没想到关键点还以为题目出错了,浪费了很多时间,郁闷……

题目如下:

N(1<N<9)只熊分一堆苹果,第一只熊(叫小东

)把苹果平均分成N分,刚好多出一个,扔掉多出的那个并取走一份,后面每只熊以此类推。

问苹果最少多少个。

题目的关键点在于每只熊取走后剩下的苹果数是(N-1)的倍数,取之前苹果数%N==1,采用逆向思维,设最后一只熊取走后剩下m个苹果,从初始值

为N-1的情况开始尝试,根据分配原则逆向推N步,假如逆推过程中出现不符合条件的数,则放弃逆推,增大m的初始值再次尝试,直到能成功逆推N步为止。

此时逆推得到的值便是最小值。

代码如下:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sca = new Scanner(System.in);
while(sca.hasNextInt()){
int n = sca.nextInt();
int m = n - 1;
int k = 1;
while(true){
int i = 0;
for(i = 0; i < n; i++){
if(m % (n - 1) != 0) break;
m = m * n / (n - 1) + 1;
}
if(i != n){
m = (++k) * (n - 1);
continue;
}
break;
}
System.out.println(m);
}
}
}
这次笔试的教训是做题时需要保持冷静清晰的思维,还有不要随便怀疑题目的正确性,最重要的是,一定要找个安静的地方笔试!找个安静的地方笔试!

找个安静的地方笔试!重要的事情说三遍!旁边要是有几个逗比室友在吵吵闹闹看动画片,你再牛逼也别想发挥好!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: