0,題目
試題編號: | 201712-1 |
試題名稱: | 最小差值 |
時間限制: | 1.0s |
內存限制: | 256.0MB |
問題描述: |
問題描述 給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們的差值的絕對值。 輸入格式 輸入第一行包含一個整數n。 輸出格式 輸出一個整數,表示答案。 樣例輸入 5 樣例輸出 1 樣例說明 相差最小的兩個數是5和4,它們之間的差值是1。 樣例輸入 5 樣例輸出 0 樣例說明 有兩個相同的數3,它們之間的差值是0. 數據規模和約定 對於所有評測用例,2 ≤ n ≤ 1000,每個給定的整數都是不超過10000的正整數。 |
1,想法
1)暴力法,雙重循環就好了,要用到取絕對值函數——abs()——包含在stdlib.h這個頭文件中。
2)先排好序,sort函數默認排序是從小到大大排序的,然後一個循環解決問題
2,代碼
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
int min_different_value=10000;
for(int i=1;i<n;i++)
{
int temp=a[i]-a[i-1];
if(temp<min_different_value)
{
min_different_value=temp;
}
}
cout<<min_different_value;
return 0;
}