CSDN挑戰程式設計 《絕對值最小》

2022-09-18 08:33:39 字數 924 閱讀 7049

給你乙個陣列a[n],請你計算出ans=min(|a[i]+a[j]|)(0<=i,j

比如:a=,

則:|a[0] + a[0]| = |1 + 1| = 2.

|a[0] + a[1]| = |1 + 4| = 5.

|a[0] + a[2]| = |1 + (-3)| = 2.

|a[1] + a[1]| = |4 + 4| = 8.

|a[1] + a[2]| = |4 + (-3)| = 1.

|a[2] + a[2]| = |(-3) + (-3)| = 6.

所以ans=1.

輸入描寫敘述:

有多組測數資料,每組資料有兩行,第一行包括乙個正整數n(0輸入以檔案結束。

輸出描寫敘述:

對於每組資料。輸出對應的答案。

輸入例子:

31 4 -312

3-1 -2 -5

31 2 3

20 5

輸出例子:14

220/*

解題思路:

對陣列進行高速排序(排序後能夠降低列舉的次數)。然後列舉求解

*/#include "stdio.h"

#include "stdlib.h"

#define abs(x) ((x)>0?

(x):-1*(x))

#define maxn 100000+10

int a[maxn],n;

int cmp(const void* _a,const void* _b)

int main()

{ int ans;

while(scanf("%d",&n)&&n>0)

{ int flag=1;

for(int i=0;i**超時的說,求高手指點,感激不盡

csdn挑戰程式設計***:372863405 

CSDN挑戰程式設計 《絕對值最小》

給你乙個陣列a n 請你計算出ans min a i a j 0 i,j 例如 a 則 a 0 a 0 1 1 2.a 0 a 1 1 4 5.a 0 a 2 1 3 2.a 1 a 1 4 4 8.a 1 a 2 4 3 1.a 2 a 2 3 3 6.所以ans 1.輸入描述 有多組測數資料,每...

絕對值最小

題目詳情 給你乙個陣列a n 請你計算出ans min a i a j 0 i,j 例如 a 則 a 0 a 0 1 1 2.a 0 a 1 1 4 5.a 0 a 2 1 3 2.a 1 a 1 4 4 8.a 1 a 2 4 3 1.a 2 a 2 3 3 6.所以ans 1.輸入描述 有多組測...

絕對值相關

abs 是如何來求絕對值的並且看看它的效率如何,所以反彙編出來看了下 sar 0x1f,edx xor edx,eax sub edx,eax 對應c語言 求int a的絕對值 b a 31 a a b a a b 起初還沒想透為什麼這樣就能得到絕對值,再細想,對右移理解有誤 微機原理忘光了,汗顏 ...