Editorial for C Bài 4.C1: 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