美文网首页
剑指offer 14-2 当n更大的时候...

剑指offer 14-2 当n更大的时候...

作者: 再凌 | 来源:发表于2020-04-29 21:11 被阅读0次

n<=1000

其实就是根据上一道题找出的规律: 因子里3越多, 乘积越大. 前4项成为了特例

class Solution {
public:
    int cuttingRope(int n) {
            if(n == 2) return 1;
    if(n == 3) return 2;
    if(n == 4) return 4;
    int result = 1;
    int div = n/3 - 1;
    for(int i = 1; i<=div; i++)
        result = (3L*(long)result)%(long)(1e9+7);
    
    if(n%3 == 0)
        result = (3L*(long)result)%(long)(1e9+7);
    else if (n%3 == 1)
        result = (4L*(long)result)%(long)(1e9+7);
    else    
        result = (6L*(long)result)%(long)(1e9+7);

    return result;

    }
};

相关文章

网友评论

      本文标题:剑指offer 14-2 当n更大的时候...

      本文链接:https://www.haomeiwen.com/subject/xvznwhtx.html