最大乘積問題

2021-10-01 18:46:08 字數 582 閱讀 5775

題目描述

輸入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 第一行是分解...