Heim >Backend-Entwicklung >PHP-Tutorial >Frage 2: Finden Sie in der Fibonacci-Folge die Summe der geraden Terme unter den Termen unter 4 Millionen.
<?php /** * 题目2:在斐波那契数列中,找出4百万以下的项中值为偶数的项之和。 * * @autor 花生米 * @date 2015-09-08 * @desc php version 5.4.33 */ $max = 40000000000; /** * 思路1 * 时间复杂度:O(n) * 这是最容易想到的方法 */ if (false) { $a = 1; $b = 2; $s = 0;//总和 while ($b < $max) { //偶数则加 if (($b & 1) == 0) { $s += $b; } $t = $b; $b = $a + $b; $a = $t; } } /** * 思路2:(优) * 时间复杂度:O(n) * 斐波那契数列 * 0 1 1 2 3 5 8 13 21 34 55 89 144 ... * a b c a b c a b c a b c * 仔细观察可知,都是每三项一个偶数,而且 * 8 = 4 * 2 + 0; * 34 = 4 * 8 + 2; * 144 = 4 * 34 + 8; * 故思路2就是这个方式来求解 */ if (false) { $a = 0;//第一项从0开始 $b = 2;//第二项从2开始 $s = 0; while ($b < $max) { if (($b & 1) == 0) { $s += $b; } $t = $b; $b = 4 * $b + $a; $a = $t; } }
Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.
Das Obige führt zu Frage 2: Ermitteln Sie in der Fibonacci-Folge die Summe der Terme mit einer geraden Zahl unter den Termen unter 4 Millionen. Ich hoffe, dass es Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird, einschließlich relevanter Inhalte.