題目描述
輸入n個元素組成的序列s,找出乙個乘積最大的連續子串行,輸出最大乘積的值。如果這個最大乘積不是正數,輸出0。n小於18,每個元素值的絕對值不大於10。
輸入先輸入n的值,再依次輸入n個數的序列,遇到檔案末尾結束。
輸出在一行輸出最大乘積的值。
樣例輸入
52 5 -1 2 -1
樣例輸出
20
當看到這道題的時候,我想的是先判斷有幾個負數,如果偶數個負數,則直接遍歷乘到最後,奇數個則乘到奇數個數減乙個,但是又一想,不對,可以是乘乙個負數後面的,也可以是乘乙個負數前面的,也可以是中間的。
後來,看到這個**,我就恍然大悟了,從陣列第乙個數遍歷迴圈,然後再從這個數開始遍歷迴圈。
參考**
#include
intmain()
for(i=
0;iif(max<0)
printf
("0");
else
printf
("%d"
,max)
;return0;
}
問題1397 最大乘積
最大乘積 描述對於n個數,從中取出m個數,如何取使得這m個數的乘積最大呢?輸入第一行乙個數表示資料組數 每組輸入資料共2行 第1行給出總共的數字的個數n和要取的數的個數m,1 n m 15,第2行依次給出這n個數,其中每個數字的範圍滿足 a i 的絕對值小於等於4。輸出每組資料輸出1行,為最大的乘積...
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 第一行是分解...