>  기사  >  백엔드 개발  >  구간 내 N의 배수인 값의 합, 알고리즘

구간 내 N의 배수인 값의 합, 알고리즘

WBOY
WBOY원래의
2016-08-10 09:07:341458검색

예: 7의 배수인 10~50 사이의 값의 합을 구합니다. 특별한 보상이 있습니다
PHP를 배울 때 종종 문제에 직면합니다. 수선화가 무엇인지, 소수의 합이 무엇인지, 등등. . 오늘 웹사이트에서 이 질문을 봤습니다. 이 질문에 대한 답변은 기본적으로 다음과 같습니다.

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

오늘 문득 이런 생각이 들었습니다. 선생님께서 가르쳐 주실 때 항상 따라하셨는데 정말 할 말을 잃었습니다.

<code>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;
}</code>

새로운 알고리즘을 찾으려면 코드를 첨부하는 것이 가장 좋습니다.

답글 내용:

예: 7의 배수인 10~50 사이의 값의 합을 구합니다. 특별한 보상이 있습니다
PHP를 배울 때 종종 문제에 직면합니다. 수선화가 무엇인지, 소수의 합이 무엇인지, 등등. . 오늘 웹사이트에서 이 질문을 봤습니다. 이 질문에 대한 답변은 기본적으로 다음과 같습니다.

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

오늘 문득 이런 생각이 들었습니다. 선생님께서 가르쳐 주실 때 항상 따라하셨는데 정말 할 말을 잃었습니다.

<code>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;
}</code>

새로운 알고리즘을 찾으려면 코드를 첨부하는 것이 가장 좋습니다.

최소값과 최대값을 사용하여 배수를 나누어 각각 상한과 하한을 구한 후 등차수열 합산식을 이용하세요

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.