試題編號
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樣例...