ロープを切るjava

537 ワード

長さnのロープを1本あげます.ロープを整数長のmセグメント(m、nは整数、n>1、m>1)に切ってください.各セグメントのロープの長さはk[0]、k[1]...k[m]と書きます.すみません、k[0]k[1]……*k[m]の最大積算はいくらですか?例えば、ロープの長さが8の場合、私たちはそれを長さがそれぞれ2、3、3の3段に切って、このとき得られた最大積は18です.
解題構想1.すべてのロープセグメントの長さが等しい場合、積が最大となる.2.最適なロープセグメント長さは3
class Solution {
    public int cuttingRope(int n) {
        if(n<=3) return n-1;
        int a=n/3;
        int b=n%3;
        if(b==0) return (int)Math.pow(3,a);
        if(b==1) return (int)Math.pow(3,a-1)*4;
        else return (int)Math.pow(3,a)*2;
    }
}