ในปัญหานี้ เราได้รับค่าจำนวนเต็มสองค่า 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