ในปัญหานี้ เราได้รับค่าจำนวนเต็มสองค่า n และ k งานของเราคือ ค้นหาตัวเลขที่น้อยที่สุดที่ k ในช่วง [1, n] เมื่อเลขคี่ทั้งหมดถูกลบ
เราต้องหาจำนวนที่น้อยที่สุดที่ k ในช่วง [1, n] ซึ่งมีค่าคู่เท่านั้น
ดังนั้น จากช่วง [1, 5] -> จำนวนจะเป็น 2, 4
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล: n =12, k =4
ผลลัพธ์: 8
คำอธิบาย:
องค์ประกอบคู่ในช่วง [1, n] :2, 4, 6, 8, 10, 12
องค์ประกอบที่เล็กที่สุดที่ 4 คือ 8
แนวทางแก้ไข:
วิธีแก้ปัญหานั้นง่าย เพราะเราต้องหาองค์ประกอบที่ k จากเลขคู่ไม่เกิน n ซึ่งคำนวณได้ง่ายๆ โดยใช้สูตร
ธาตุ =2*k.
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#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;
} ผลลัพธ์
kth smallest number is 24