Hãy viết chương trình tìm n số Fibonacci đầu tiên.
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 dãy số Fibonacci trong python
- Tính dãy số Fibonacci trong python không dùng phương pháp đệ quy
- Tính dãy số Fibonacci trong python sử dụng phương pháp đệ quy
1. Tính dãy số Fibonacci không dùng hàm đệ quy
Ví dụ chương trình tính dãy số Fibonacci không sử dụng hàm đệ quy:
""" * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n """ def fibonacci(n): f0 = 0; f1 = 1; fn = 1; if (n < 0): return -1; elif (n == 0 or n == 1): return n; else: for i in range(2, n): f0 = f1; f1 = fn; fn = f0 + f1; return fn; print("10 số đầu tiên của dãy số fibonacci: "); sb = ""; for i in range(0, 10): sb = sb + str(fibonacci(i)) + ", "; print(sb)
Kết quả:
10 số đầu tiên của dãy số fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
2. Tính dãy số Fibonacci sử dụng hàm đệ quy
Ví dụ chương trình tính dãy số Fibonacci sử dụng hàm đệ quy:
""" * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n """ def fibonacci(n): if (n < 0): return -1; elif (n == 0 or n == 1): return n; else: return fibonacci(n - 1) + fibonacci(n - 2); print("10 số đầu tiên của dãy số fibonacci: "); sb = ""; for i in range(0, 10): sb = sb + str(fibonacci(i)) + ", "; print(sb)
Kết quả:
10 số đầu tiên của dãy số fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Python nhập từ bàn phím số nguyên dương n. Hiển thị dãy số Fibonacci với độ dài n. Cơ sở toán học:
Yêu cầu kiến thức:
Code tham khảo dưới đây được viết trên Python 3.8:
# Ho ten: Hoang Van Tuan # Website: timoday.edu.vn def fibonacci_phi_de_quy(n): f0 = 0 f1 = 1 fn = 1 if n < 0: return -1 elif (n == 0) or (n == 1): return n else: for i in range(2, n): f0 = f1 f1 = fn fn = f0 + f1 return fn def fibonacci_de_quy(n): if n < 0: return -1 elif (n == 0) or (n == 1): return n else: return fibonacci_de_quy(n - 1) + fibonacci_de_quy(n - 2) n = int(input('Nhap vao so nguyen duong n = ')) print(n, ' so dau tien cua day Fibonacci la:') for i in range(0, n): print(fibonacci_phi_de_quy(i), " - ", fibonacci_de_quy(i))
Kết luận:
- Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây
Các thẻ: lap trinhlập trình python
Có thể bạn sẽ thích…
Đề bài
Hãy viết chương trình tìm n số Fibonacci đầu tiên.
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 dãy số Fibonacci trong python
- Tính dãy số Fibonacci trong python không dùng phương pháp đệ quy
- Tính dãy số Fibonacci trong python sử dụng phương pháp đệ quy
1. Tính dãy số Fibonacci không dùng hàm đệ quy
Ví dụ chương trình tính dãy số Fibonacci không sử dụng hàm đệ quy:
""" * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n """ def fibonacci(n): f0 = 0; f1 = 1; fn = 1; if (n < 0): return -1; elif (n == 0 or n == 1): return n; else: for i in range(2, n): f0 = f1; f1 = fn; fn = f0 + f1; return fn; print("10 số đầu tiên của dãy số fibonacci: "); sb = ""; for i in range(0, 10): sb = sb + str(fibonacci(i)) + ", "; print(sb)Kết quả:
10 số đầu tiên của dãy số fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,2. Tính dãy số Fibonacci sử dụng hàm đệ quy
Ví dụ chương trình tính dãy số Fibonacci sử dụng hàm đệ quy:
""" * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n """ def fibonacci(n): if (n < 0): return -1; elif (n == 0 or n == 1): return n; else: return fibonacci(n - 1) + fibonacci(n - 2); print("10 số đầu tiên của dãy số fibonacci: "); sb = ""; for i in range(0, 10): sb = sb + str(fibonacci(i)) + ", "; print(sb)Kết quả:
10 số đầu tiên của dãy số fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,