原題鏈接:PAT (Basic Level) Practice (中文)1083 是否存在相等的差
做前思考
1、創(chuàng)一個(gè)大小為10000的數(shù)組至会,每有一個(gè)差值,就將差值對(duì)應(yīng)的數(shù)組位置加加。
做后總結(jié)
簡(jiǎn)單題(無(wú))
#include<stdio.h>
int main()
{
int n,i,num[10000]={0};
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(i+1<a[i])
{
num[(a[i]-i-1)]++;
}else{
num[(i+1-a[i])]++;
}
}
for(i=9999;i>=0;i--)
{
if(num[i]>1)
{
printf("%d %d\n",i,num[i]);
}
}
return 0;
}