試題編號: | 201409-1 |
試題名稱: | 相鄰數對 |
時間限制: | 1.0s |
內存限制: | 256.0MB |
問題描述: |
問題描述
給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。
輸入格式
輸入的第一行包含一個整數n,表示給定整數的個數。
第二行包含所給定的n個整數。 輸出格式
輸出一個整數,表示值正好相差1的數對的個數。
樣例輸入
6
10 2 6 3 7 8 樣例輸出
3
樣例說明
值正好相差1的數對包括(2, 3), (6, 7), (7, 8)。
評測用例規模與約定
1<=n<=1000,給定的整數爲不超過10000的非負整數。
|
解題思路:
這一題是一道數組和for循環連在一起使用的題目
我覺得這一道題這一句話能夠讓整道題目沒有歧義(各不相同的整數)
具體算法:
從第一個數字開始,往後面的數字一個一個減,如果剛好差值的絕對值是1,那麼就記錄下來
一直操作到最後一個數字位置
代碼展示:
#include<iostream>
using namespace std;
int main()
{
int arr[1010]={0};
int n=0;
while(cin>>n)
{
for(int i=0;i<n;i++)
cin>>arr[i];
int sum=0;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(arr[j]-arr[i]==1||arr[j]-arr[i]==-1)
sum++;
}
}
cout<<sum<<endl;
}
}