Editorial for C Bài 4.C3: Số chính phương gần nhất


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

Ý tưởng: Để ý rằng một số sẽ không bao giờ nằm ở chính giữa 2 số chính phương liên tiếp, nên ta duyệt về 2 phía của \(a\). Khi gặp một số chính phương ở 1 trong 2 bên thì dừng duyệt luôn và trả về số chính phương vừa tìm được.

Các bước giải:

  • Bước 1: Khai báo và nhập vào số \(a\).
  • Bước 2: Khai báo hai biến nguyên \(l\) và \(r\) tượng trưng cho việc duyệt về bên trái và bên phải của số \(a\). Ta gán giá trị ban đầu cho 2 biến trên là 1.
  • Bước 3: Duyệt 2 phía của \(a\) bằng cách sử dụng vòng while, điều kiện để kết thúc khi \(a+r\) là số chính phương hoặc \(a-l\) là số chính phương. Sau mỗi một vòng, ta tăng giá trị của \(l\) và \(r\) lên 1.
  • Bước 4: Khi kết thúc vòng lặp (tức là tìm thấy số chính phương), ta kiểm tra điều kiện số chính phương của \(a-l\) và \(a+r\), giá trị nào là số chính phương thì in ra giá trị đó.

Đă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.