题目
问题描述
给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。
输入格式
输入的第一行包含一个整数n,表示给定整数的个数。
第二行包含所给定的n个整数。
输出格式
输出一个整数,表示值正好相差1的数对的个数。
样例
输入:
6
10 2 6 3 7 8
输出:
3
说明:
值正好相差1的数对包括(2,3),(6, 7), (7,8)。
评测用例规模与约定
1<= n <=1000,给定的整数为不超过10000的非负整数。
分析
相邻数对的个数就是后一个数减前一个数所得差为1的数对的个数,那么直接相减然后计数就可以了。
代码
/*
20190821
ccf试题1:相邻数对
*/
#include <iostream>
using namespace std;
int main(){
//接收数据
int n;
cin >>n;
int arr[n];
for(int i=0; i<n; i++){
cin >>arr[i];
}
//计算数对个数
int numbers = 0;
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(arr[j] - arr[i] == 1){
numbers++;
}
}
}
//输出结果
cout <<numbers<<endl;
return 0;
}
总结
题目感觉有些难,但写起来好简单。