C++ 统计区间内数字数量算法:高效解决序列区间计数问题
C++ 统计区间内数字数量算法:高效解决序列区间计数问题
问题描述: 给定一个数的序列 S,以及一个区间 [L, R], 求序列中介于该区间的数的个数,即序列中大于等于 L 且小于等于 R 的数的个数。
输入: 第一行 3 个整数 n、L、R,分别表示序列的长度,区间的左端点,区间的右端点。(0 < n ≤ 10000, 1 ≤ L ≤ R ≤ 1000000) 第二行 n 个正整数,表示序列里的每一个数,每个数小于等于 10000000
输出: 输出一个整数,表示序列中大于等于 L 且小于等于 R 的数的个数。
示例输入:
5 1 10
11 8 1 10 16
示例输出:
3
C++ 代码示例:
#include <iostream>
using namespace std;
int main() {
int n, L, R;
cin >> n >> L >> R;
int count = 0;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
if (num >= L && num <= R) {
count++;
}
}
cout << count << endl;
return 0;
}
代码解释:
- 使用
cin读取输入的 n、L、R 和序列中的每个数字。 - 初始化计数器
count为 0。 - 循环遍历序列中的每个数字,判断其是否在区间 [L, R] 内。
- 如果数字在区间内,则计数器
count加 1。 - 最后输出
count的值,即区间内的数字数量。
总结: 本文提供的代码示例使用简单的循环遍历和判断来统计序列中区间内的数字数量,具有较高的可读性和易理解性。该方法适用于处理数据量较小的序列,对于大型数据集,可能需要考虑更高级的数据结构和算法来提高效率。
原文地址: https://www.cveoy.top/t/topic/pRNb 著作权归作者所有。请勿转载和采集!