Nội dung chính
Đề bài
Viết chương trình tìm n số Fibonacci đầu tiên trong 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, …
Lời giải
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 PHP không dùng phương pháp đệ quy.
- Tính dãy số Fibonacci trong PHP 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: kienthuclaptrinh.net * @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: kienthuclaptrinh.net * @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