1083 是否存在相等的差 PAT (Basic Level)

题目链接:

https://pintia.cn/problem-sets/994805260223102976/problems/994805260780945408


分析:

将某个差值的次数存在数组a对应位置中,然后从a[n-1]开始判断是否大于1,若大于1,则输出下标和次数,一直到a[0]结束,使用while(n--)恰好实现。


AC代码:

 1 #include<stdio.h>
 2 
 3 int main(void)
 4 {
 5     int n=0,m=0,i=0,a[10008]={0};
 6     scanf("%d",&n);
 7     for(i=1;i<=n;i++)
 8     {
 9         scanf("%d",&m);
10         ++a[m-i<0?i-m:m-i];
11     }
12     while(n--)
13         if(a[n]>1)
14             printf("%d %d\n",n,a[n]);
15     return 0;
16 }

猜你喜欢

转载自www.cnblogs.com/leisureeen/p/11424735.html