您现在的位置是:自如初>PHP算法题PHP算法题

PHP算法题01-有多少苹果可以用来分赃

温新 2020-08-22 00:00:07 PHP算法题 1405人已围观

简介PHP算法题-有多少苹果可以用来分赃。有5个人偷了一堆苹果,他们准备在第二天进行分赃。晚上,有一个人溜出来,他把所有苹果分成了5份,但是多了一个,他顺手把这多的一个苹果扔给树上的猴子,自己先拿 1/5 藏了起来。没想到其他四人也都是这么想的,都如第一个人一样把苹果分成5份,把多的那一个扔给了树上的猴,偷走了 1/5。第二天,大家分赃,也是分成5份多一个扔给猴子。最后一人分了一份。问:共有多少苹果?


题目

有5个人偷了一堆苹果,他们准备在第二天进行分赃。晚上,有一个人溜出来,他把所有苹果分成了5份,但是多了一个,他顺手把这多的一个苹果扔给树上的猴子,自己先拿 1/5 藏了起来。没想到其他四人也都是这么想的,都如第一个人一样把苹果分成5份,把多的那一个扔给了树上的猴,偷走了 1/5。第二天,大家分赃,也是分成5份多一个扔给猴子。最后一人分了一份。问:共有多少苹果?


解析

  1. 假设总苹果数量为 totalApple

  2. 上一个人对苹果划分时剩余的苹果为 remainingApple,藏起来的苹果数量为 totalApple/5,多的一个扔给了猴子

  3. 推导出公式为 remainingApple = taotalApple - totalApple/5 - 1

  4. 第一个人分的苹果总数totalApple是最初苹果总数

  5. 第二个人分的苹果总数是在第一个分完之后所有剩下的苹果总数,如此下去,直到第5个分完

    1. 举个栗子:有N个苹果,第一个分完之后的数量

for ($s = 5; ; $s++) {
   // 第一个分苹果
   if ($s % 5 == 1) {
       $one = round($s - $s / 5) - 1;
       // 第二个分苹果
       if ($one % 5 == 1) {
           $two = round($one - $one / 5) - 1;
           // 第三个分苹果
           if ($two % 5 == 1) {
               $three = round($two - $two / 5) - 1;
               // 第四个人分苹果
               if ($three % 5 == 1) {
                   $four = round($three - $three / 5) - 1;
                   // 第五个人分苹果
                   if ($four % 5 == 1) {
                       $five = round($four - $four / 5) - 1;
                       if ($five % 5 == 1) {
                           // 总苹果数量
                           echo $s;
                           exit;
                       }
                   }
               }
           }
       }
   }
}

关于PHP算法,参考书籍与网络资料。


我是小白,期待和优秀的你一起同行!


  小白

  2020年08月21日

很赞哦!(27)

文章评论

登录 注册

自如初--时间轴

QQ登录

站名:自如初

独白:向前走!向前走!

邮箱:ziruchu@qq.com

站点信息