毎日1題:ロープを切るby python(19.9.17)
531 ワード
長さnのロープを1本あげます.ロープをmセグメント(m、nは整数、n>1、m>1)に切ってください.各セグメントのロープの長さをk[0]、k[1]、...、k[m].すみません、k[0]xk[1]x...xk[m]の可能な最大積はいくらですか?例えば、ロープの長さが8の場合、私たちはそれを長さがそれぞれ2、3、3の3段に切って、このとき得られた最大積は18です.
class Solution:
def cutRope(self, n):
if(n==2):
return 1
if(n==3):
return 2
extra = n%3
if(extra==0):
return 3**(n/3)
if(extra==1):
return (3**((n-4)/3))*4
if(extra==2):
return (3**((n-2)/3))*2