Editorial for C Bài 6.C16 [Mảng một chiều]: Tổng fibo
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:

Lời giải chi tiết
Đây là một bài tập làm quen với dãy số Fibonaci, một dãy số phổ biến trong toán học và lập trình.
Ý tưởng: Sử dụng 3 biến \(x, y, z\) để biểu thị lần lượt 3 số \(f(i-2), f(i-1), f(i)\) khi xét đến số fibonaci thứ \(i\). ta tăng dần \(i\) cho đến khi \(z \leq a\) thì kiểm tra và cho ra kết quả.
Các bước giải:
- Bước 1: Khai báo và nhập vào số \(q\) thể hiện số truy vấn, sau đó chạy truy vấn.
- Bước 2: Khai báo và nhập vào số \(a\)
- Bước 3: Khai báo và đặt giá trị khởi tạo cho 3 biến \(x, y, z\) lần lượt các giá trị \(f(0), f(1), f(2)\).
- Bước 4: Kiểm tra xem a có bằng \(f(0), f(1), f(2)\) hay không. Nếu không thì ta sử dụng vòng lặp
while, với mỗi vòng, ta sẽ cộng dần \(x, y, z\) sao cho 3 biến đó vẫn giữ được là 3 số Fibonaci liên tiếp, bằng cách gán \(x = y\), rồi \(y = z\), sau đó là \(z = x + y\). Tiếp tục như vậy cho tới khi \(z \geq a\) thì dừng vòng lặp. - Bước 5: Kiểm tra xem \(z\) có bằng \(a\) hay không. Nếu không thì tức là số \(a\) không phải số Fibonaci, nên sẽ in kết quả là
NO, ngược lại in raYES. - Bước 6: Xuống dòng để tiếp tục với các truy vấn sau đó.
Đăng ký khóa học: https://www.facebook.com/clblaptrinhfullhouse
SĐT liên hệ: 0372229686
Youtube: CLB Lập Trình Full House
Fullhouse dev đồng hành trên từng dòng code
Comments