Leetcode 372. Super Pow

题目描述:

Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large positive integer given in the form of an array.

One knowledge: ab % k = (a%k)(b%k)%k

const int base = 1337;
int powerMod(int a,int b){
    a %= base;
    int result = 1;
    for(int i = 0;i < b;i++){
        result = (result * a) % base;
    }
    return result;
}

int superPow(int a, vector<int>& b) {
    if(b.empty()){
        return 1;
    }
    int lastDigit = b.back();
    b.pop_back();
    return powerMod(superPow(a,b),10) * powerMod(a,lastDigit) % base;   
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容