이 문제에서는 두 개의 정수 값 n과 k가 주어집니다. 우리의 임무는 모든 홀수가 삭제되었을 때 범위 [1, n]에서 k번째로 작은 수를 찾는 것입니다.
짝수 값만 포함하는 [1, n] 범위에서 k번째로 작은 수를 찾아야 합니다.
따라서 범위 [1, 5] -> 숫자는 2, 4가 됩니다.
문제를 이해하기 위해 예를 들어 보겠습니다.
입력: n =12, k =4
출력: 8
설명:
[1, n] 범위의 짝수 요소:2, 4, 6, 8, 10, 12
네 번째로 작은 요소는 8입니다.
해결 방법:
짝수에서 n까지의 k번째 요소를 찾아야 하므로 솔루션은 간단합니다. 이것은 공식을 사용하여 쉽게 계산할 수 있습니다.
요소 =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