C语言 | Leetcode C语言题解之第372题超级次方

题目:

题解:

cpp 复制代码
//计算a的b次方
int mypow(int a, int b){
    a = a % 1337; // 防止a过大超出规模
    int ret = 1;
    for(int i = 0; i < b; i++){
        ret *= a;
        ret = ret % 1337; //防止超出规模
    }
    return ret;
}
//整体计算
int superPow(int a, int* b, int bSize){
    if(a == 1) return 1;
    int sum = 1;
    for(int i = 0; i < bSize; i++){
        //由例子可知(x的10次方的次数)为(bSize-1),所以写在最开始,使得多出来的一次(循环次数为bSize)为计算1的十次方
        sum = mypow(sum, 10); 
        sum *= mypow(a, b[i]);
        sum = sum % 1337; //防止超出规模
    }


    return sum;
}
相关推荐
[J] 一坚2 小时前
深入浅出理解冒泡、插入排序和归并、快速排序递归调用过程
c语言·数据结构·算法·排序算法
-森屿安年-3 小时前
LeetCode 283. 移动零
开发语言·c++·算法·leetcode
散峰而望3 小时前
C++数组(一)(算法竞赛)
c语言·开发语言·c++·算法·github
自然常数e4 小时前
深入理解指针(1)
c语言·算法·visual studio
元亓亓亓5 小时前
LeetCode热题100--79. 单词搜索
算法·leetcode·职场和发展
hazy1k6 小时前
ESP32基础-Socket通信 (TCP/UDP)
c语言·单片机·嵌入式硬件·网络协议·tcp/ip·udp·esp32
dvvvvvw6 小时前
x的y次幂的递归函数.c
c语言
2501_941143736 小时前
缓存中间件Redis与Memcached在高并发互联网系统优化与实践经验分享
leetcode
Elias不吃糖8 小时前
LeetCode每日一练(209, 167)
数据结构·c++·算法·leetcode
Want5958 小时前
C/C++跳动的爱心②
c语言·开发语言·c++