毎日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