Python:每日一题 324
本帖最后由 zltzlt 于 2020-2-5 21:58 编辑今天的题目:
给定一个正整数 n,将其拆分为两个及以上正整数的和,并使这些整数的乘积最大。返回可以得到的最大乘积。
示例 1:
输入:2
输出:1
解释:2 = 1 + 1,1 × 1 = 1。
示例 2:
输入:10
输出:36
解释:10 = 3 + 3 + 4,3 × 3 × 4 = 36。
{:10_298:}欢迎大家一起答题!{:10_298:} 帖子有乱码 hrp 发表于 2020-2-5 17:04
帖子有乱码
现在没有了 zltzlt 发表于 2020-2-5 17:04
现在没有了
最后一行还有 hrp 发表于 2020-2-5 17:05
最后一行还有
不好意思,现在没有了 不用考虑1吗 本帖最后由 zltzlt 于 2020-2-5 22:12 编辑
William4869 发表于 2020-2-5 17:23
不用考虑1吗
1 = 0 + 1,0 × 1 = 0{:10_250:}
不过 0 不是正整数 本帖最后由 William4869 于 2020-2-5 17:46 编辑
import math
def f324(x):
ret=1
if x<4:
return x-1
elif x%3==1:
return pow(3,x//3-1)*4
elif x%3==2:
return pow(3,x//3)*2
else:
return pow(3,x//3)
print(f324(31))
看错题目 William4869 发表于 2020-2-5 17:33
试一试,,不知道想的对不对
56 ms hrp 发表于 2020-2-5 17:34
看错题目
怎么可能会这么简单呢{:10_277:}
输入:10
输出:25
预期结果:36 本帖最后由 hrp 于 2020-2-5 17:37 编辑
zltzlt 发表于 2020-2-5 17:35
怎么可能会这么简单呢
输入:10
脑袋懵看错题目了,看成拆分两个数了{:10_266:}{:10_266:}
你动作太快了 意思就是说让这个数尽量的拆分成n个3吗,最后一个不能拆的数进行调节吗? fan1993423 发表于 2020-2-5 17:42
意思就是说让这个数尽量的拆分成n个3吗,最后一个不能拆的数进行调节吗?
并不是啊,看哪种拆分方法乘积大 怎么没有高亮? 一个账号 发表于 2020-2-5 17:44
怎么没有高亮?
有啊?? 看8楼的答案就是这个意思嘛,我不知道是不是这个原理 zltzlt 发表于 2020-2-5 17:35
56 ms
来看看速度有没有改进 William4869 发表于 2020-2-5 17:33
这个解法好,32 ms zltzlt 发表于 2020-2-5 17:45
有啊??