leetcode剪绳子II

leetcode剪绳子II_第1张图片

1.数学法

和前一题不同的是,数很大可能溢出

思路是一样的,含有尽量多的3时乘积最大,

代码如下:

class Solution {
public:
    int cuttingRope(int n) {
        if (n == 2) return 1;
        if (n == 3) return 2;
        long ans = 1;
        
        while (n > 4) {
            ans *= 3;
            n -= 3;
            ans %= 1000000007;
        }
        //最后若N=5,则ans*3*2
        //若N =4,则ans*4
        
        ans *= n;
        return ans % 1000000007;

    }
};

 

你可能感兴趣的:(leetcode剪绳子II)