ロープを切る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
解題構想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;
}
}