1. 程式人生 > >ccf-2017-12-1-最小差值

ccf-2017-12-1-最小差值

原題:

問題描述
試題編號: 201712-1
試題名稱: 最小差值
時間限制: 1.0s
記憶體限制: 256.0MB
問題描述: 問題描述   給定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的正整數。

試題分析:最先想到的就是將數存放到陣列中,2層迴圈計算最小差值絕對值即可。(考試的時候智商不線上不知道怎麼寫的,沒有得滿分)

AC程式碼:

#include<iostream>
#include<math.h>
using namespace std;
int arr[1005];
int main()
{
	int n,i,j;
	int min=10000;
	cin>>n;
	for(i=0;i<n;i++)
		cin>>arr[i];
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(abs(arr[i]-arr[j])<min)
				min=abs(arr[i]-arr[j]);
		}
	}
	cout<<min;
	return 0;
}