<?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教程有兴趣的朋友有所帮助。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号