18727 数对问题一
时间限制:1000MS 代码长度限制:10KB
提交次数:0 通过次数:0
题型: 编程题 语言: G++;GCC
Description
一个长度为N的正整数序列,现在需要计算出有多少对数字的差的绝对值为C。
注意只要位置不同就认为是不相同的数对。
输入格式
第一行,两个整数 N, C。(1=<N<=10000),(1=<C<=10000)
第二行,N个正整数a1…an。 (1=<ai<=10000)
输出格式
仅一行,满足条件的数对的个数。
输入样例
4 1
1 2 3 1
输出样例
3
提示
(a1,a2),(a2,a3),(a2,a4)共3个数对满足条件。
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "iostream"
#include "string"
using namespace std;
#define MAXSTRLEN 255 // 用户可在255以内定义最大串长
typedef unsigned char SString[MAXSTRLEN + 1]; // 0号单元存放串的长度
//定义一个数组
int num[10005];
//次数k
int k = 0;
//检查n前的元素
void check(int num[],int n,int C) {
for (int i = 1; i < n; i++) {
//如果符合两种条件之一则成立
if (num[i] - num[n] == C || num[n] - num[i] == C) {
k++;
}
}
}
int main(void){
int N,C;
cin >> N >> C;
for (int i = 1; i <= N; i++) {
cin >> num[i];
check(num,i,C);
}
cout << k;
return 0;
}