SDUT 1293乘積最大的分解

2022-08-05 05:03:15 字數 741 閱讀 4462

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作為輸入的結束。

對應輸入的資料,輸出多行,輸出所求最大分解乘積。

6

70

9

12

思路:根據規律,乙個正整數n拆分成多個3或多個2的和時,它們的乘積最大

**: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 但顯然這不是最...