在 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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP