C++ 计算数对个数 (a-b=c) - 不使用哈希表
C++ 计算数对个数 (a-b=c) - 不使用哈希表
问题描述:
给出一串数以及一个数字 c,要求计算出所有 a-b=c 的数对的个数(不同位置得到数字一样的数对算不同的数对)。
输入:
共两行。第一行两个整数 n,c 。
第二行 a1,a2,a4... 个整数 ( ),作为要处理的那串数。
输出:
该数串中包含的满足 a-b=c 的数对的个数
样例输入:
6 3 8 4 5 7 7 4
样例输出:
5
C++ 代码实现:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, c;
cin >> n >> c;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
int count = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (nums[i] - nums[j] == c) {
count++;
}
}
}
cout << count << endl;
return 0;
}
代码解析:
- 首先,我们使用
vector来存储输入的数组。 - 然后,我们使用两层循环遍历数组。外层循环遍历每个元素,内层循环遍历该元素之后的元素。
- 对于每个元素对,我们计算它们之间的差值,如果差值等于 c,则计数器加 1。
- 最后,我们输出计数器的值。
代码特点:
- 该代码不使用
unordered_map,保证了代码的简洁高效。 - 代码逻辑清晰易懂,易于理解和维护。
- 代码具有良好的可读性和可扩展性。
总结:
本文介绍了使用 C++ 代码计算数对个数 (a-b=c) 的方法,并提供了一种不使用哈希表的实现方法。该方法简洁高效,易于理解和维护,适合解决类似问题。
原文地址: https://www.cveoy.top/t/topic/igAO 著作权归作者所有。请勿转载和采集!