題目描述link.
請你找出m個和為n的正整數,他們的乘積要盡可能的大。
輸出字典序最小的一種方案。
輸入格式
一行,兩個正整數n,m
輸出格式
m個和為n的,乘積盡可能的大的正整數。
思路:首先從最簡單的問題開始分析,假設m=2,即分為兩組使和最大,那麼:
已知x+y=k(k為常數),s=x*y,當x=y時,有s的最大值。
由此可以類推:
當乙個數n被分為m份時,當每份數量相等,這m個數的乘積最大,因而我們只需要使這m個數都相等就行了,所以有了q=n/m,又因為題目要求每個數都為整數,故每個數要盡量的接近q,又因為在c語言中,整形n/m結果為整數向下取整,所以結果只有兩種可能 這兩個數只有兩種:n/m&&n/m +1;要求乘積最大,當然要盡可能接近,最多最多最多差1。
所以在最後,餘數一定小於除數,看有幾個1,就有幾個數為(q+1),又因為總人數為m,則q有m-餘數個;
#include
#include
#include
#include
#include
#include
#include
#include
#define pi 3.1415926535
#include
#include
#include
intmain()
say bye~~ 洛谷 P1018 乘積最大
題目描述 今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為n的數字串,要求選手使用k個乘...
洛谷P1018 乘積最大
洛谷p1018 乘積最大 題意 給乙個長度為n的數字串,在這個數字串中插入k個乘號,使得表示式的乘積最大 分析一下 算了,懶得分析了,中有詳細注釋,直接看 吧 君 include using namespace std const int maxn 45 struct biginteger bigi...
洛谷 P1018 乘積最大
今年是國際數學聯盟確定的 20002000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰 9090 周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友 xzxz 也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度為 nn 的數字串...