Editorial for C Bài 3.C2: Tìm người chạy trước


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: Kiểm tra từng hiệu của 3 số b,c,d với a. Ta sẽ lấy số dương nhỏ nhất. Truy vết: Mỗi khi phát hiện hiệu mới nhỏ hơn hiệu hiện tại mà thỏa mãn đề bài, ta sử dụng một biến lưu lại người đó.

Các bước giải:

  • Bước 1: Khai báo và nhập vào 4 số a,b,c,d.
  • Bước 2: Khởi tạo 2 biến pos=0dist=1 thể hiện người gần nhất trước mặt của An, và khoảng cách của người gần nhất trước mặt An (-1 là chưa có ai vượt An).
  • Bước 3: Kiểm tra xem a có nhỏ hơn lần lượt b,c,d hay không. Nếu có thì tiếp tục kiểm tra điều kiện dist: Nếu dist=1 thì chỉ có người đang xét hiện tại vượt An, do đó gán dist=ca; Nếu dist>0dist< khoảng cách từ An đến người đang xét đến, thì gán lại dist mới và pos mới là người đang xét; trường hợp còn lại thì ta bỏ qua để xét đến người tiếp theo.
  • Bước 4: In ra pos là người gần nhất vượt qua An.

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

Zalo