class Solution {
public int cuttingRope(int n) {
if(n<=3){
return n-1;
}
Long sum = Long.valueOf(1); //用Long类型来避免sum短暂的乘以3之后可能会超出int的范围的问题
while(n>4){
//sum乘以3可能会超过int的界限
sum = sum*3%1000000007; //与剪绳子I的区别在于 本题可能出现大数越界的问题,所以每一步运算过后都要取余
n-=3;
}
sum = sum *n%1000000007;
return sum.intValue() ;
}
}
原来不用包装类Long也行
class Solution {
public int cuttingRope(int n) {
if(n<=3){
return n-1;
}
long sum = 1; //不用包装类Long只用long也行
while(n>4){
//sum乘以3可能会超过int的界限
sum = sum*3%1000000007; //与剪绳子I的区别在于 本题可能出现大数越界的问题,所以每一步运算过后都要取余
n-=3;
}
sum = sum *n%1000000007;
return (int)sum ;
}
}