在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
第四小的元素是8。
解决方法:
解决方案很简单,因为我们需要从偶数到n处找到第k个元素。使用公式可以很容易地计算出
元素=2*k。
该程序说明了我们解决方案的工作原理,
示例
#include <bits/stdc++.h> using namespace std; int main() { int n = 124, k = 12; if(n > 2*k){ cout<<"第k个最小数字是 "<<(2 * k); } else cout<<"kth smallest number cannot be found"; return 0; }输出结果
第k个最小数字是 24