Loading

CCF认证201712-1

题目描述:

问题描述
  给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。
输入格式
  输入第一行包含一个整数n
  第二行包含n个正整数,相邻整数之间使用一个空格分隔。
输出格式
  输出一个整数,表示答案。
样例输入
5
1 5 4 8 20
样例输出
1
样例说明
  相差最小的两个数是5和4,它们之间的差值是1。
样例输入
5
9 3 6 1 3
样例输出
0
样例说明
  有两个相同的数3,它们之间的差值是0.
数据规模和约定
  对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。
代码如下:
 1 #include<iostream>
 2 #include<vector>
 3 #include<cmath>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int n,x,min,tmp;
 9     vector<int> num;
10     cin>>n;
11     for(int i = 0; i < n; i++)
12     {
13         cin>>x;
14         num.push_back(x);
15     }
16     for(int i = 0; i < n; i++){
17         for(int j = i+1; j < n; j++){
18             if(num[i] > num[j]){
19                 tmp = num[i];
20                 num[i] = num[j];
21                 num[j] = tmp;
22             }
23         }
24     }
25     min = abs(num[1]-num[0]);
26     for(int i = 1; i < n; i++){
27         if(min > abs(num[i]-num[i-1]))
28             min = abs(num[i] - num[i-1]);
29         else
30             continue;
31     }
32     cout<<min;
33     return 0;
34 }

 

posted @ 2019-03-13 13:19  玛卡巴卡要搬砖  阅读(143)  评论(0编辑  收藏  举报