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.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
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