【牛客网】数值的整数次方

    xiaoxiao2025-06-04  19

    给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

    超时代码

    class Solution { public: double Power(double base, int exponent){ if (exponent == 0)return base; double k = 1; while (exponent--){ k *= base; } return k; }//没有考虑到指数可能是负数 }; AC的代码 class Solution { public: double UnsignedPower(double base, unsigned int exponent){ if (exponent == 0)return 1.0; if (exponent == 1)return base; double result = UnsignedPower(base, exponent >> 1); result *= result; if (exponent & 1) result *= base; return result; } double Power(double base, int exponent) { int flag = 1; if (base-0.0>-0.0000001 && base-0.0<0.0000001)return 0.0; if (exponent < 0){ flag = 0; exponent =(-exponent); } double result = UnsignedPower(base, exponent); if (flag == 0)result = 1.0 / result; return result; }//注意考虑到指数为负数,以及位运算的运用可以提高效率 };
    转载请注明原文地址: https://ju.6miu.com/read-1299604.html
    最新回复(0)