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;
}
相关推荐
半条-咸鱼几秒前
【FreeRTOS】核心原理与实战速查手册
c语言·操作系统·rtos
白帽小阳5 分钟前
Typora插件开发指南:打造专属IDE式写作环境
c语言·网络·python·网络安全·github·pygame·护网行动
tkevinjd33 分钟前
416分割等和子集
java·python·算法·leetcode·职场和发展
ysu_031410 小时前
06 | 200个单元测试C项目也能TDD
c语言·单元测试·tdd
什巳12 小时前
JAVA练习278- 和为 K 的子数组
java·学习·算法·leetcode
鱼儿也有烦恼15 小时前
快速学完 LeetCode top 1~50
leetcode·algorithm
烟锁池塘柳019 小时前
【C/C++】解决C++控制台输出中文乱码问题
c语言·开发语言·c++
退休倒计时19 小时前
【每日一题】LeetCode 17. 电话号码的字母组合 TypeScript
算法·leetcode·typescript
临沂堇20 小时前
刷题日志 | LeetCode Hot 100 双指针
算法·leetcode·职场和发展
XWalnut20 小时前
LeetCode刷题 day29
java·算法·leetcode