số-chẵn-lớn-nhất-nhỏ-hơn-mọi-giá-trị-lẻsố-chẵn-lớn-nhất-nhỏ-hơn-mọi-giá-trị-lẻ

Thuật toán tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng

Bài toán: Cho mảng một chiều các số nguyên. Hãy viết hàm tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ có trong mảng. Nếu mảng không tồn tại số lẻ nào thì in ra số -1.

Ví dụ:

  • Input:

  • Output:

Ý tưởng tìm số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ trong mảng

  • Ý tưởng là chúng ta sẽ tìm ra số lẻ min có giá trị nhỏ nhất trong mảng. Vậy số min - 1 chính là số chẵn lớn nhất nhỏ hơn mọi giá trị lẻ trong mảng. Nếu ta không tìm được số lẻ nào trong mảng thì ta sẽ trả về giá trị -1.

Xây dựng hàm tìm số lẻ min có giá trị nhỏ nhất trong mảng

  • Đầu tiên ta nên khởi tạo biến min có giá trị thật lớn để có thể tìm được giá trị lẻ nhỏ nhất trong mảng. Tốt nhất là nên dùng một hằng số lớn hơn kiểu int.
  • Ta tiến hành duyệt tất cả các phần tử trong mảng nếu phần tử a[i] vừa mang giá trị lẻ vừa bé hơn giá trị min thì ta gán min = a[i].
  • Sau khi duyệt tất cả các phần nếu giá trị min vẫn bằng giá trị khởi tạo tức là mảng không có phần tử lẻ. Ta tiến hành trả về giá trị -1. Nếu không thì ta trả về giá trị min- 1.
  • Lưu ý nếu ta khởi tạo min = 0 thì ta không thể tìm được giá trị lẻ nhỏ nhất trong mảng được. Cùng hai xem đoạn code sau:

 

Nhưng nếu khởi tạo giá trị min lớn thì có thể khắc phục được lỗi trên

Code tham khảo

Sau khi chạy chương trình trên ta nhận được kết quả:

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

Similar Posts

Subscribe
Notify of
guest
1 Bình luận
Inline Feedbacks
View all comments