time limit: 1000ms memory limit: 65536k
乙個正整數n(0<n<100),可以寫成若干個正整數加數之和,如6可以寫成
6=1+2+3;
6=2+2+2;
6=2+4;
6=3+3;
6=1+5;
…… 其中有一種分解方式獲得的加數的乘積是所有分解方式中最大的,比如上面分解中最大的乘積是3×3=9。
請你設計一種演算法,對於任何乙個輸入的正整數,求出其各種分解中所得到的最大乘積。
輸入有多組,每組一行輸入乙個正整數。以0作為輸入的結束。
對應輸入的資料,輸出多行,輸出所求最大分解乘積。
670
9思路:根據規律,乙個正整數n拆分成多個3或多個2的和時,它們的乘積最大12
**:view code
#include #include#include
intmain()
if ( n == 2
)
if ( n % 3 == 0
)
else
if ( n % 3 == 1
)
else
printf (
"%.0lf\n
", ans);
}return0;
}
正整數分解使得乘積最大問題
一 問題描述 設n是乙個正整數。現在要求將n分解為若干個自然數之和,使得自然數的成績最大。輸出這個最大的乘積。要求 1 要求這些自然數互不相同 2 要求這些自然數可以是相同的 二 問題分析 這類題一開始需要我們手寫幾個數來看看規律。先做第一問,要求自然數互不相同。從5開始寫起,5 2 3,6 2 4...
數論 正整數分解使得乘積最大
引入問題 要求將乙個正整數n分成幾個自然數的和,使這些自然數的乘積最大。輸出這個最大值。分兩種要求 1 這些自然數可以相同 2 這些自然數互不相同 同乙個數n,1的結果應該比2大 分析 只分析n 4的情況,因為n 4最大值都是本身 1.這些自然數可以相同 我們先列幾個數找找規律 4 2 2 5 3 ...
子陣列的最大乘積
子陣列的最大乘積 給定乙個長度為 n的整數陣列,只允許用乘法,不能用除法,計算任意 n 1 個數的組合乘積中最大的一組,並寫出演算法的時間複雜度。我們把所有可能的 n 1 個數的組合找出來,分別計算它們的乘積,並比 較大小。由於總共有n個 n 1 個數的組合,總的時間複雜度為o n2 但顯然這不是最...