个人博客→TanJX的自留地
聪明的猴子
题目
一只猴子在森林里捡到了一堆的卡片,每张卡片上都写着一个数。猴子从这堆卡片里面任意拿出两张卡片a,b,那么这两张卡片的差值为abs(a-b)(绝对值)。猴子想知道任意抽两张卡片,他能够抽到的最小差值是多少呢?
Input
多组输入
对于每组测试数据:
第一行输入一个整数N,代表有N个卡片(2<=N<=1000)
接着输入N个整数(a1,a2,a3……an),代表N张卡片上的数。(-1000000<=ai<=1000000)
Output
每组输出只包含一个整数,代表最小的差值。
Sample Input
4
1 3 5 6
3
6 1 3
Sample Output
1
2
思路
超级大水题
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<math.h>
using namespace std;
const int N = 1005;
const int INF = 0x3f3f3f3f;
int a[N];
int main()
{
int n;
while(cin>>n)
{
memset(a,0,sizeof a);
int minn = INF;
for(int i = 1; i <= n; i++)
scanf("%d",&a[i]);
for(int i = 1; i < n; i++)
{
for(int j = i+1; j <= n; j++)
{
minn = min(minn,abs(a[i]-a[j]));
}
}
cout<<minn<<endl;
}
return 0;
}