ccf 最小差值 C++ 題解

0,題目

試題編號: 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的正整數。

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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章