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;
}
相关推荐
yyy(十一月限定版)1 分钟前
c语言——二叉树
c语言·开发语言·数据结构
LYFlied11 分钟前
【每日算法】LeetCode 104. 二叉树的最大深度
前端·算法·leetcode·面试·职场和发展
IT方大同15 分钟前
循环结构的功能
c语言·数据结构·算法
sin_hielo37 分钟前
leetcode 955
数据结构·算法·leetcode
一起养小猫1 小时前
LeetCode100天Day4-盛最多水的容器与两数之和II
java·数据结构·算法·leetcode
黎雁·泠崖1 小时前
吃透指针通用用法:回调函数与 qsort 的使用和模拟
c语言·开发语言
脏脏a1 小时前
聊聊 C 里的进制转换、移位操作与算术转换
c语言·开发语言·移位操作符
xie_pin_an1 小时前
深入解析 C 语言排序算法:从快排优化到外排序实现
c语言·算法·排序算法
inputA1 小时前
【rt-thread】点灯实验和按键输入实验
c语言·笔记·学习·实时操作系统
Swift社区2 小时前
LeetCode 453 - 最小操作次数使数组元素相等
算法·leetcode·职场和发展