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

作者: 温新

分类: 【PHP算法题】

阅读: 2776

时间: 2020-08-21 16:00:07

题目

​ 有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

请登录后再评论