You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么我自定义实现的power幂函数无法正常运行?

问题排查说明

你提供的power函数存在逻辑错误,无法正确计算幂值,具体问题和修复方案如下:

错误原因

  • 循环逻辑错误:你在循环中直接对a执行平方操作a *= a,不是累计乘以原始底数,导致最终结果远大于预期值。例如计算2^3时,你的代码会依次计算2*2=4、4*4=16,返回结果为16,和正确值8完全不符。
  • 未覆盖边界场景:没有处理b=0(幂值为0时结果应为1)、b<0(负次幂需要取底数倒数)的情况。

修复代码

基础暴力实现(时间复杂度O(b))

double power(double a, long long b){
    // 0次幂直接返回1
    if (b == 0) return 1.0;
    // 处理负次幂
    if (b < 0) {
        a = 1.0 / a;
        b = -b;
    }
    double result = 1.0;
    while(b > 0){
        result *= a;
        b--;
    }
    return result;
}

快速幂优化实现(时间复杂度O(logb),适合b值很大的场景)

double power(double a, long long b){
    if (b == 0) return 1.0;
    if (b < 0) {
        a = 1.0 / a;
        b = -b;
    }
    double result = 1.0;
    while(b > 0){
        // 奇数位将当前底数乘入结果
        if (b % 2 == 1) {
            result *= a;
        }
        a *= a;
        b /= 2;
    }
    return result;
}

内容的提问来源于stack exchange,提问作者user17526692

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:24:03