高中时候学的不等式的直觉,因子越相近,乘积越大
剪绳子
http://www.nowcoder.com/questionTerminal/57d85990ba5b440ab888fc72b0751bf8
# 直觉,请问有大佬告诉这个方法为什么行的通吗
# 假设number划分成m等分,在所有的乘积当中,若number能整除m则:最大值一定在 pow(m,x),pow(x,m)中,若不能整除最大值在pow(m,x)*y,pow(x,m)*y中
class Solution:
def cutRope(self, number):
# write code here
results=[]
if number==2:
return 1
for m in range(2,number):
x=number/m
y=number%m
if y!=0:
results.append(max(pow(m,x)*y,pow(x,m)*y))
else:
results.append(max(pow(m,x),pow(x,m)))
return max(results)