在 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.