在 C++ 中查詢範圍 [1, n] 中的第 k 小數,其中所有奇數都被刪除


在這個問題中,我們給定兩個整數值 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

第 4 個最小的元素是 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

更新於: 2021-01-25

145 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.