day01
题目:有多少苹果来分赃?
题目描述:
有5个人偷了一堆苹果,准备在第二天分赃,晚上,有一人出来,把所有苹果分成5份,但是多了一个,他顺手把这个苹果扔给了树上的大师兄,自己先拿五分之一藏了起来,结果其他四人也都是这么想的,都如第一个人一样把苹果分成了五份,把多的那一个扔给了树上的大师兄,偷走了五分之一,第二天,大家分赃,也是分成五份多一个扔给了大师兄,最后一人分了一份,,问:共有多少苹果?
for(var t=5;;t++){
if(t%5==1){
// 第一个人拿走五分之一,剩下一个
y=t-Math.round(t/5)-1
if(y%5==1){
// 第二个人拿走剩下苹果的五分之一,剩余1
m=y-Math.round(y/5)-1
if(m%5==1){
// 第三个人拿走剩下苹果的五分之一,剩余1
n=m-Math.round(m/5)-1
if(n%5==1){
// 第四个人拿走剩下苹果的五分之一,剩余1
x=n-Math.round(n/5)-1
if(x%5==1){
// 第五个人拿走剩下苹果的五分之一,剩余1
z=x-Math.round(x/5)-1
if(z%5==1){
console.log(t) ;break
}
}
}
}
}
}
}
解析:设总的苹果为t,上一个人对苹果划分时剩余的苹果为y,则t/5为藏起来的一份,有一个是给大师兄的,可得y=t-t/5-1,从这个公式开始,第一个人分的苹果总数t为最初的苹果总数,但从第二个人开始,这个t都为上一个人偷完苹果剩余的苹果数,通过分析,可得到实现的代码为: