Trong bài toán này, chúng ta được cung cấp hai giá trị nguyên n và k. Nhiệm vụ của chúng ta là tìm số nhỏ thứ k trong phạm vi [1, n] khi tất cả các số lẻ bị xóa.
Chúng ta cần tìm số nhỏ thứ k trong phạm vi [1, n] chỉ chứa các giá trị chẵn.
Vì vậy, từ phạm vi [1, 5] -> số sẽ là 2, 4.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào: n =12, k =4
Đầu ra: 8
Giải thích:
Các phần tử chẵn trong phạm vi [1, n]:2, 4, 6, 8, 10, 12
Phần tử nhỏ thứ 4 là 8.
Cách tiếp cận giải pháp:
Giải pháp đơn giản là chúng ta cần tìm phần tử thứ k từ các số chẵn đến n. Điều này có thể được tính toán dễ dàng bằng công thức,
Phần tử =2 * k.
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
Ví dụ
#include <bits/stdc++.h> using namespace std; int main() { int n = 124, k = 12; if(n > 2*k){ cout<<"kth smallest number is "<<(2 * k); } else cout<<"kth smallest number cannot be found"; return 0; }
Đầu ra
kth smallest number is 24