Heim >Backend-Entwicklung >PHP-Tutorial >Frage 2: Finden Sie in der Fibonacci-Folge die Summe der geraden Terme unter den Termen unter 4 Millionen.

Frage 2: Finden Sie in der Fibonacci-Folge die Summe der geraden Terme unter den Termen unter 4 Millionen.

WBOY
WBOYOriginal
2016-07-29 09:15:501234Durchsuche
<?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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn