Python Every Day, 第 37 期
将 一个正整数n 拆分成若干个正整数(可以是相同的正整数), 使他们的和等于n。求出拆分后的数乘积最大的值(如果不拆分的结果最大,返回不拆分的值)
Example
现有一个正整数7.拆分方法有..
1 + 1 + 1 + 1 + 1 + 1 + 1 = 7
2 + 2 + 3 = 7
3 + 3 + 1 = 7
...等
现在面临的问题是怎么拆封才能让他们的乘积最大化?
我们目前可以知道的是,如果想要乘积最大化的条件有
尽可能的避开1,因为任何数乘以1 都不会发生改变
两个数的间隔尽可能小 (比如7 拆分成2 + 5 和 3 + 4 。明显间隔小的3、4乘积最大)
尽可能多的分解(参考次方运算)