๐๐ ๅๆ Offer 14- II. ๅช็ปณๅญ II
2022ๅนด10ๆ10ๆฅ
- algorithm
 
๐๐ ๅๆ Offer 14- II. ๅช็ปณๅญ II
้พๅบฆ: ๐๐
๐ ๐
้ฎ้ขๆ่ฟฐ

่งฃๆณ
class Solution {
    public int cuttingRope(int n) {
        // ๆ่ทฏ๏ผ
        // ็ป้ชๅ
ฌๅผ
        if(n == 2) {
            return 1;
        }
        if(n == 3) {
            return 2;
        }
        int count = n / 3;
        int lef = n % 3;
        if(lef == 0) {
            return mySol(count, 1);
        } else if(lef == 1) {
            return mySol(count - 1, 4);
        } else {
            return mySol(count, 2);
        }
    }
    // ๅฟซ้ๅนๆฑ 3^n
    private int mySol(int n, int ext) {
        long res = 1;
        long cur = 3; // ๅๅงๅผ๏ผๅผ == 3^x ๅฝๅ่ฝฎ
        while(n != 0) {
            if(n % 2 == 1) {
                res = (res * cur) % 1000000007;
            }
            cur = (cur * cur) % 1000000007;
            n /= 2;
        }
        res = (res * ext) % 1000000007;
        return (int)res;
    }
}
่พๅบ
