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;
}
相关推荐
夏鹏今天学习了吗4 小时前
【LeetCode热题100(82/100)】单词拆分
算法·leetcode·职场和发展
時肆4855 小时前
C语言造轮子大赛:从零构建核心组件
c语言·开发语言
踩坑记录6 小时前
leetcode hot100 189.轮转数组 medium
leetcode
xingzhemengyou16 小时前
C语言 查找一个字符在字符串中第i次出现的位置
c语言·算法
Dream it possible!7 小时前
LeetCode 面试经典 150_二分查找_在排序数组中查找元素的第一个和最后一个位置(115_34_C++_中等)
c++·leetcode·面试
黎雁·泠崖8 小时前
吃透Java操作符进阶:算术+移位操作符 全解析(Java&C区别+完整案例+避坑指南)
java·c语言·python
菜鸟233号9 小时前
力扣377 组合总和 Ⅳ java实现
java·数据结构·算法·leetcode
我是大咖9 小时前
二级指针与指针数组搭配
c语言·数据结构·算法
iYun在学C9 小时前
驱动程序开发(字符设备驱动框架实验)
linux·c语言·嵌入式硬件
老鼠只爱大米9 小时前
LeetCode算法题详解 189:轮转数组
leetcode·轮转数组·数组旋转·环状替换法·算法面试题