php - 区间内,N的倍数的值的和,算法
PHP中文网
PHP中文网 2017-04-11 09:47:41
0
1
276

例:求10-50之间的是7的倍数的值的和.有特殊奖励
经常在学PHP的时候总会遇到一些题.什么水仙花啊,什么素数的和之类的.今天我看到某个网站上的这道题,对于这道题的答案,基本都是以下这个函数.

function newSumMultiple($min,$max,$multiple){ $sum = 0; for(;$min<$max;++$min){ if(!($min % $multiple)){ $sum += $min; } } return $sum; }

今天我突发奇想,一直都是这样子,老师教的时候都是照本宣科,真的是无语.于是我就想了以下这种思路.

function sumMultiple($min,$max,$multiple){ $remainder=$min % $multiple; if($remainder){ $remainder = $min + $remainder + 1; $min = $remainder; }else{ $remainder = $min; } $sum = 0; while(true){ $sum += $remainder; $min += $multiple; if($min >= $max){ break; } $remainder = $remainder + $multiple; } return $sum; }

求一个新的算法,最好附上代码.

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen (1)
PHPzhong

用 min, max 分别整除 multiple 得到上下界然后用等差数列求和公式

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!