剪绳子
文章目录
剪绳子
给你一根长度为 n 绳子,请把绳子剪成 m 段(m、n 都是整数,$2≤n≤58$ 并且 $m≥2$ )。
每段的绳子的长度记为$ k[1]、k[2]、……、k[m] $。
$k[1]*k[2]…k[m]*k[1]*k[2]…k[m] $可能的最大乘积是多少?
例如当绳子的长度是 88 时,我们把它剪成长度分别为 2、3、32、3、3 的三段,此时得到最大的乘积 1818。
样例
|
|
数学结论
假设 $N = n_1 + n_2 + … + n_k$ ,并且 $n_1n_2n_3*…*n_k$
是最大乘积
思路:
- $n=2,max=1*1 = 1$
- $n=3, max=1*2=2;$
- $n =4, max = 112*2 = 4,分成2个2$
- $n=5,分成一个2,一个3, max = 2*3=6$
- $n=6,分为2个3,max = 3*3 = 8$
- 以此类推,尽量分成多个3,其余为2,这样构成的数最大
解题代码
|
|
文章作者 LYR
上次更新 2021-08-17