paiza Aランクレベルアップメニュー STEP: 33 「累積和の計算 PHP編」解答例

悪い解答例(累積和じゃない)

<?php
    // 自分の得意な言語で
    // Let's チャレンジ!!

    $num = trim(fgets(STDIN));
    $s = explode(" ",trim(fgets(STDIN)));
    
    $hoge = 0;//reset
    
    for ($i = 0; $i < $num; $i++) {
        $hoge += $s[$i];
        echo($hoge."\n");
    }


?>
Mr.berry

累積和とはこういう感じらしい

<?php
    // 自分の得意な言語で
    // Let's チャレンジ!!

    $num = trim(fgets(STDIN));
    $hoge = explode(" ",trim(fgets(STDIN)));
    
    //print_r($hoge);

    //累積和
    $sum[0] = 0;
    for($i = 0; $i < $num; $i++){
        $sum[$i + 1] = $sum[$i] + $hoge[$i];
    }
    array_shift($sum);
    
    //print_r($sum);
    
    foreach($sum as $value){
        echo($value."\n");
    }

?>

なんでこの累積和が必要になるかというと
こちらの方が計算がずっと速いかららしい。です。

この記事の問題
paiza Aランクレベルアップメニュー(PHP編)

https://paiza.jp/works/mondai/a_rank_level_up_problems/problem_index?language_uid=php
0