CCF認證 201712 1最小差值(C )

2021-08-16 07:50:45 字數 1383 閱讀 3762

試題編號

201712-1

試題名稱

最小差值

時間限制

1.0s

記憶體限制

256.0mb

問題描述

問題描述

給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們的差值的絕對值。

輸入格式

輸入第一行包含乙個整數n。第二行包含n個正整數,相鄰整數之間使用乙個空格分隔。

輸出格式

輸出乙個整數,表示答案。

樣例輸入

51 5 4 8 20

樣例輸出

1樣例說明

相差最小的兩個數是5和4,它們之間的差值是1。

樣例輸入

59 3 6 1 3

樣例輸出

0樣例說明

有兩個相同的數3,它們之間的差值是0。

資料規模和約定

對於所有評測用例,2 ≤ n ≤ 1000,每個給定的整數都是不超過10000的正整數。

最簡單的方法:暴力法

將資料存入陣列,由於是不定數量的陣列,所以定義為動態陣列。然後將陣列中的資料進行兩兩取差值的絕對值,排序得出最終的最小差值的絕對值。c++**如下:

#include

using

namespace

std;

int n; //n表示輸入資料的個數

int *array;//表示儲存資料的陣列(動態陣列)

//獲取兩個資料的差值的絕對值

int difference(int a, int b)

int min()

int main()

cout

0;}

還有另外一種方法,先將輸入的一行資料按照從小到大的順序進行排序,然後再取前後相鄰元素的差值(一般為後面乙個元素減去前面乙個元素,保持差值為正數的情況下),再取這些差值中的最小值。**如下:

#include

using

namespace

std;

int n;

int *array;

int difference(int a, int b)

int min()

int main()

int i,j,temp;

for(i=1;i//插入排序

cout

0;}

CCF考試 201712 1最小差值

問題描述 給定n個數,請找出其中相差 差的絕對值 最小的兩個數,輸出它們的差值的絕對值。輸入格式 輸入第一行包含乙個整數n。第二行包含n個正整數,相鄰整數之間使用乙個空格分隔。輸出格式 輸出乙個整數,表示答案。樣例輸入 5 1 5 4 8 20 樣例輸出 樣例說明 相差最小的兩個數是5和4,它們之間...

CCF 201712 1 最小差值

問題描述 給定 n個數,請找出其中相差 差的絕對值 最小的兩個數,輸出它們的差值的絕對值。輸入格式 輸入第一行包含乙個整數 n。第二行包含 n個正整數,相鄰整數之間使用乙個空格分隔。輸出格式 輸出乙個整數,表示答案。樣例輸入5 1 5 4 8 20 樣例輸出 1樣例說明 相差最小的兩個數是5和4,它...

CCF201712 1 最小差值

ccf201712 1 最小差值 問題描述 給定 n個數,請找出其中相差 差的絕對值 最小的兩個數,輸出它們的差值的絕對值。輸入格式 輸入第一行包含乙個整數 n。第二行包含 n個正整數,相鄰整數之間使用乙個空格分隔。輸出格式 輸出乙個整數,表示答案。樣例輸入5 1 5 4 8 20 樣例輸出 1樣例...