Ở đây chúng ta sẽ thấy một cách hiệu quả để kiểm tra xem số hạng Fibonacci thứ n có phải là bội số của 10 hay không. Giả sử các số hạng Fibonacci là {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987}. Vì vậy, đây là thứ 15 (Đếm từ 0) Số hạng Fibonacci chia hết cho 10. Đối với 16, nó sẽ trả về true.
Một phương pháp đơn giản nhất là tạo số Fibonacci theo số hạng nhất định và kiểm tra xem nó có chia hết cho 10 hay không? Nhưng giải pháp này không tốt, vì nó sẽ không hoạt động với các điều khoản lớn hơn.
Một cách tiếp cận tốt khác như dưới đây -
Số hạng Fibonacci - 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
Các số này (được đánh dấu là chữ in đậm) chia hết cho 2. Và khoảng của chúng là 3 số hạng Fibonacci. Tương tự, hãy kiểm tra điều đó -
Số hạng Fibonacci:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
Mọi số hạng thứ 5 đều chia hết cho 5. Bây giờ LCM của 3 và 5 là 15. Vì vậy, chúng ta có thể nói rằng cứ 15 th Các số hạng Fibonacci chia hết cho 10.
Hãy để chúng tôi xem thuật toán để có được ý tưởng.
Thuật toán
fiboDivTen (thuật ngữ)
Begin if term is divisible by 15, then return true end if return false End
Ví dụ
#include<iostream> using namespace std; bool fiboDivTen(int term) { if(term % 15 == 0){ return true; } return false; } int main() { int term = 45; if (fiboDivTen(term)) cout << "Divisible"; else cout << "Not Divisible"; }
Đầu ra
Divisible