Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm số nhỏ thứ k trong phạm vi [1, n] khi tất cả các số lẻ bị xóa trong C ++

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