Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาตัวเลขที่น้อยที่สุดที่ k ในช่วง [1, n] เมื่อเลขคี่ทั้งหมดถูกลบใน C++


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