RunnerLee

午后一道数学小题目

April 24, 2019 · · Updated April 24, 2019

求 0 - 100 之间, 所有 3 或是 5 的倍数的和. 一开始没注意想, 把 3 和 5 的共同倍数给加了两次.

循环实现:

function funny($number)
{
    $sum = 0;
    for ($i = 3; $i <= $number; $i += 3) {
        $sum += $i;
        if (($temp = $i + ($i / 3) * 2) <= $number && $temp % 3 !== 0) {
            $sum += $temp;
        }
    }

    return $sum;
}

等差数列求和:

function funny($max)
{
    $callback = function ($num) use ($max) {
        $time = intval($max / $num);

        $return = ($time + 1) * $num * ($half = intval($time / 2));

        if (1 === $time % 2) {
            $return += ($half + 1) * $num;
        }

        return $return;
    };

    return $callback(3) + $callback(5) - $callback(15);
}

今年我小学四年级毕业了, 老师跟妈妈说, 我上学没用, 卖猪肉最好了.









  • About
  • Search
  • Powered by Jekyll using the Trio theme