15/09/2018, 16:48

Dãy số Fibonacci trong PHP

PHP Quy luật của dãy số Fibonacci : số tiếp theo bằng tổng của 2 số trước, 2 số đầu tiên của dãy số là 0, 1. Ví dụ: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, … Có 2 cách để viết chương trình tính dãy số Fibonacci trong PHP : Tính dãy số Fibonacci trong java không dùng ...

PHP

Quy luật của dãy số Fibonacci: số tiếp theo bằng tổng của 2 số trước, 2 số đầu tiên của dãy số là 0, 1. Ví dụ: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …

Có 2 cách để viết chương trình tính dãy số Fibonacci trong PHP:

  • Tính dãy số Fibonacci trong java không dùng phương pháp đệ quy.
  • Tính dãy số Fibonacci trong java sử dụng phương pháp đệ quy.

Tính dãy số Fibonacci không dùng phương pháp đệ quy

Ví dụ chương trình tính dãy số Fibonacci không sử dụng phương pháp đệ quy:

File: fibonacci1.php

<?php
/**
 * Tính số fibonacci thứ n 
 *
 * @author: viettuts.vn
 * @param n: chỉ số của số fibonacci tính từ 0
 *           vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2
 * @return integer
 */
function fibonacci($n) {
    $f0 = 0;
    $f1 = 1;
    $fn = 1;

    if ($n < 0) {
        return - 1;
    } else if ($n == 0 || $n == 1) {
        return $n;
    } else {
        for($i = 2; $i < $n; $i ++) {
            $f0 = $f1;
            $f1 = $fn;
            $fn = $f0 + $f1;
        }
    }
    return $fn;
}

echo ("10 số đầu tiên của dãy số fibonacci: ");
for($i = 0; $i < 10; $i ++) {
    echo (fibonacci ( $i ) . " ");
}
?>

Kết quả:

10 số đầu tiên của dãy số fibonacci: 0 1 1 2 3 5 8 13 21 34

Tính dãy số Fibonacci sử dụng phương pháp đệ quy

Ví dụ chương trình tính dãy số Fibonacci sử dụng phương pháp đệ quy:

File: fibonacci2.php

<?php
/**
 * Tính số fibonacci thứ n
 *
 * @author: viettuts.vn
 * @param n: chỉ số của số fibonacci tính từ 0
 *           vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2
 * @return integer
 */
function fibonacci($n) {
    if ($n < 0) {
        return - 1;
    } else if ($n == 0 || $n == 1) {
        return $n;
    } else {
        return fibonacci ( $n - 1 ) + fibonacci ( $n - 2 );
    }
}

echo ("10 số đầu tiên của dãy số fibonacci: ");
for($i = 0; $i < 10; $i ++) {
    echo (fibonacci ( $i ) . " ");
}
?>

Kết quả:

10 số đầu tiên của dãy số fibonacci: 0 1 1 2 3 5 8 13 21 34
PHP
0