最優分解問題

2021-09-02 00:15:04 字數 485 閱讀 6772

題目描述

設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但包...