題目描述
設n是乙個正整數,現在要求將n分解為若干個互不相同的自然數的和,使這些自然數的乘積最大。
輸入輸入乙個n (n<=100)
輸出輸出最大的乘積
樣例輸入
1樣例輸出
1如果不理解思路,代入資料算一下就明白了 ,1的結果是1,2的結果是2,3的結果是3
#include #includeusing namespace std;
int a[101];
void devide()
a[1]=2;
n-=2;
while(n>a[k])
if(n==a[k])
for(int i=0;ia[k-i]++;
for(int j=1;j<=k;j++)
printf("%lld",sum);
}int main()
貪心 最優分解問題
設n是乙個正整數,現要求將n分解為若干個互不相同的自然數的和,使這些自然數的乘積最大.若a b n,則 a b 越小,a b就越大 當n 4時,乘積4時,n n a a,a 2 n n a 此時乘積 n 貪心策略 把n分成從2開始的連續自然數,如果最後剩下乙個數均勻地分給前面各項 具體 如下 inc...
3 2 最優分解問題
利用貪心演算法解決最優分解問題 將正整數n分成若干互不相同的自然數和,且使得自然數的乘積最大。小學時候學過,周長相同的正方形面積要大於長方形面積。這意味著 在總和相同的情況下,自然數間越接近,乘積越大。本道題可以用這樣的思路去解。要想使自然數的乘積最大 todo 獲取基本因數 def getinde...
最優自然數分解問題
description 問題描述 設n是乙個正整數。1 現在將n分解為若干個互不相同的自然數之和,且使這些自然數的乘積最大。2 現在將n分解為若干個自然數之和,且使這些自然數的乘積最大。程式設計任務 對於給定的正整數n,程式設計計算問題 1 和 2 的最優分解的最大乘積。注意 這裡的自然數不含0但包...