尋找n個數中最大乘積

2021-09-26 23:11:55 字數 655 閱讀 9103

尋找最大乘積:

(1)全部是正數,即是最大的三個數乘積;

(2)全部是負數,即也是最打的三個數的乘積;

(3)勳在正數和負數,如果最大的三個數全部是正數,即是三個正數乘積,最大數,次小數和最小數的乘積。

即是尋找最大的三個數,和最小的兩個數。

n = int(input())

array = list(map(int,input().strip().split()))

max1,max2,max3,min1,min2 = 0 , 0 ,0,0,0

for i in range(n):

if array[i] > max1:

max3,max2,max1 = max2,max1,array[i]

elif array[i] > max2:

max3, max2 = max2, array[i]

elif array[i] > max3:

max3 = array[i]

elif array[i] < min1:

min2, min1 = min1, array[i]

elif array[i] < min2:

min2 = array[i]

print(max(max1max2max3, max1min1min2))

DFS BFS 最大乘積

今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度n的數字串,要求選手使用k個乘號將它分成k...

WinterEx 最大乘積

時間限制 1 sec 記憶體限制 128 mb 乙個正整數一般可以分為幾個互不相同的自然數的和,如3 1 2,4 1 3,5 1 4 2 3,6 1 5 2 4,現在你的任務是將指定的正整數n分解成若干個互不相同的自然數的和,且使這些自然數的乘積最大。只乙個正整數n,3 n 10000 第一行是分解...

YTU OJ 最大乘積

時間限制 1 sec 記憶體限制 128 mb 提交 292 解決 39 提交 狀態 討論版 命題人 acm4302 對於n個數,從中取出m個數,如何取使得這m個數的乘積最大呢?第一行乙個數 代表資料組數 每組資料共兩行 第一行兩個正整數n m,n,m 20 第二行給出n個整數,其中每個數的絕對值小...