しばらく悩んでいたプログラミングの課題を解決した後は、「うまくいく、それで十分だ」といつも思っています。
私の意見では、これが本当に正しい考え方だとは思いません。常に最高のパフォーマンスでコーディングしようとすべきだと思います。
とにかく、これを言って、私はProjectEulerの質問を試しました。具体的には質問2です。
このソリューションをどのように改善できたでしょうか。本当に冗長な気がします。前の番号を再帰的に渡すように。
<?php
/* Each new term in the Fibonacci sequence is generated by adding the previous two
terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Find the sum of all the even-valued terms in the sequence which do not exceed
four million.
*/
function fibonacci ( $number, $previous = 1 ) {
global $answer;
$fibonacci = $number + $previous;
if($fibonacci > 4000000) return;
if($fibonacci % 2 == 0) {
$answer = is_numeric($answer) ? $answer + $fibonacci : $fibonacci;
}
return fibonacci($fibonacci, $number);
}
fibonacci(1);
echo $answer;
?>
これは宿題ではないことに注意してください。私は数百年前に学校を辞めました。私は退屈していると感じており、プロジェクトオイラーの質問を通過しています