<?php /** * 找出1000以下自然数中3和5的倍数之和。 * * @author 花生米 * @date 2015-09-06 * @desc php version 5.4.33 */ $max = 1000; $sum = 0; /** * 方法1 * 时间复杂度:O(n) */ if (0) { for ($i = 1; $i < $max; $i++) { if ($i % 3 == 0 || $i % 5 == 0) { $sum += $i; } } } /** * 方法2 * 时间复杂度:O(n) * 循环次数较方法1少 */ if (0) { for ($i = 3; $i < $max; $i += 3) { $sum += $i; } for ($i = 5; $i < $max; $i += 5) { //排除被3和5同时整除的数 if ($i % 3) { $sum += $i; } } } /** * 方法3(最优) * 时间复杂度:O(1) * 运用等差数列求和公式 */ if (0) { $multiple3 = intval($max / 3); $multiple5 = intval($max / 5); $multiple15 = intval($max / 15); //$value:值 $multiple:倍数 $total = function ($value, $multiple) { return $value * (1 + $multiple) * $multiple / 2; }; $sum = $total(3, $multiple3) + $total(5, $multiple5) - $total(15, $multiple15);//减公倍数 }
저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.
위에서는 주제 1을 소개합니다: 1000 이하의 자연수 중에서 3과 5의 배수의 합을 구합니다. , 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.