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.

Author: buitrunghieu

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 ra YES.
  • 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

There are no comments at the moment.