题解 | #剪绳子(进阶版)#

剪绳子(进阶版)

http://www.nowcoder.com/practice/106f666170554379ab1974e5a601e741

using namespace std;
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param number long长整型 
     * @return long长整型
     */
    long long cutRope(long long number) {
        // write code here
        if(number < 4){
            return number-1;
        }
        
        long long n;
        long long res = 1;
        long long x = 3;
        
        if(number % 3 == 1){
            n = number / 3 - 1;
        }else{
            n = number / 3 ;
        }
        
        while(n > 0){
            if(n & 1){res = res * x % 998244353;}
            n >>= 1;
            x = x * x % 998244353;
        }
        
        if(number % 3 == 1){
            return 4 * res % 998244353;
        }else if(number % 3 == 2){
            return 2 * res % 998244353;
        }else{
            return res;
        }
        
    }
};
全部评论

相关推荐

明天不下雨了:我靠2022了都去字节了还什么读研我教你****:你好,本人985电子科大在读研一,本科西南大学(211)我在字节跳动实习过。对您的岗位很感兴趣,希望获得一次投递机会。
点赞 评论 收藏
分享
蔡徐kun:还行,早挂晚挂都是挂。早点挂进池子等别人捞你
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务