给出一串数以及一个数字 c要求计算出所有 a-b=c 的数对的个数不同位置得到数字一样的数对算不同的数对。输入共两行。第一行两个整数nc 。第二行 a1a2a4 个整数 作为要处理的那串数。输出该数串中包含的满足a-b=c的数对的个数样例输入6 38 4 5 7 7 4输出5C++不使用unorderedmap保证样例输出正确
可以使用两重循环遍历所有可能的数对,判断是否满足a-b=c的条件,然后统计满足条件的数对个数。
具体步骤如下:
-
读取输入的n和c。
-
读取输入的一串数,存储在数组a中。
-
定义一个变量count,用于统计满足条件的数对个数,初始化为0。
-
使用两重循环遍历数组a中的所有数对。外层循环控制第一个数a,内层循环控制第二个数b。
- 外层循环从第一个数开始,遍历到倒数第二个数。
- 内层循环从外层循环的下一个数开始,遍历到最后一个数。
-
判断当前数对是否满足a-b=c的条件。如果满足条件,将count加1。
-
输出统计结果count。
C++代码如下:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, c;
cin >> n >> c;
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int count = 0;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i] - a[j] == c) {
count++;
}
}
}
cout << count << endl;
return 0;
}
这样就可以计算出满足a-b=c的数对个数了。
原文地址: http://www.cveoy.top/t/topic/ja30 著作权归作者所有。请勿转载和采集!