问题描述
给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。
输入格式
输入第一行包含一个整数n。
第二行包含n个正整数,相邻整数之间使用一个空格分隔。
第二行包含n个正整数,相邻整数之间使用一个空格分隔。
输出格式
输出一个整数,表示答案。
样例输入
5
1 5 4 8 20
1 5 4 8 20
样例输出
1
样例说明
相差最小的两个数是5和4,它们之间的差值是1。
样例输入
5
9 3 6 1 3
9 3 6 1 3
样例输出
0
样例说明
有两个相同的数3,它们之间的差值是0.
数据规模和约定
对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。
代码:
#include<iostream> #include<math.h> using namespace std; int main() { int Min=100000;//定义初始比较值 int i, j, k = 0; int a[1005], b[1005]; int N; cin >> N; for (i = 0; i < N; i++) cin >> a[i]; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { if (i != j) { int gapvalue=abs(a[i] - a[j]);//计算差值 if (Min>gapvalue) { Min = gapvalue;//比较最小值 } } } } cout << Min << endl; return 0; }
#include<iostream> #include<algorithm> #include<vector> using namespace std; int main(){ vector<int> list; int N; cin>>N; int temp; while(N--){ cin>>temp; list.push_back(temp); } int mini = 10010; for(int i=0;i<list.size();i++){ for(int j=i+1; j<list.size(); j++){ int gap = abs(list[i]-list[j]); if(mini>gap){ mini = gap; } } } cout<<mini; return 0; }