作业介绍

二分快速幂

递归法:

// fun(a, b): 求a^b
int fun(int a, int b){
    // 当b == 1时,a^1 = a
    if(b == 1) return a;
    // 当b是偶数  fun(a, b) =>  fun(a*a , b/2)
    if(b%2 == 0) return fun(a*a , b/2);
    // 当b是奇数
    if(b%2 == 1) return fun(a , b-1)*a;
}

循环2

int fun3(int a, int b){
    int res = 1;
    while(b){
        // 当b是奇数
        if(b%2 == 1) res = res*a;
        // 当b是偶数
        a = a*a;
        b = b/2;
    }
return res;
}

循环1

int fun_(int a, int b){
int res = 1;
while(b){
// 当b是奇数
if(b%2 == 1){
res = res*a;
b--;
}
// 当b是偶数
else{
a = a*a;
b = b/2;
}
}
return res;
}
状态
已结束
题目
5
开始时间
2024-2-24 15:30
截止时间
2024-3-3 23:59
可延期
24 小时