每日一道算法题

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都为上一个人偷完苹果剩余的苹果数,通过分析,可得到实现的代码为:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值