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;
}
相关推荐
水饺编程2 小时前
第5章,[Win32 章节] :Polygon 函数和多边形填充模式
c语言·c++·windows·visual studio
wuminyu2 小时前
Java FFM处理网络读写事件源码剖析
java·linux·c语言·jvm·c++
wenyq73 小时前
LeetCode 2904. Shortest and Lexicographically Smallest Beautiful String
算法·leetcode
一木 之林3 小时前
C/C++ 面向对象编程(OOP)(进阶)
java·c语言·c++
LONGZETECH5 小时前
新能源汽车动力电池实训教学痛点与虚拟仿真技术解决方案
c语言·3d·unity·架构·汽车·汽车教学软件
_Narcissus_5 小时前
分治&递归
数据结构·c++·笔记·算法·leetcode·递归·分治
v_for_van7 小时前
C语言__attribute__
服务器·c语言·开发语言·mcu·嵌入式·嵌入式实时数据库
不灭的黄金瞳1238 小时前
C语言实现单链表
c语言·数据结构
萌动的小火苗8 小时前
Linux进程线程面试题【无答案】
linux·运维·服务器·c语言·开发语言