栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode--50. Pow(x, n)(C++描述)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode--50. Pow(x, n)(C++描述)

// Source : https://leetcode.cn/problems/powx-n/
// Date : 2022-6-12

// 本方法超时
// class Solution {
// public:
//     // 计算一个数字n次幂的方法
//     double my_cal(double x, int n)
//     {
//         double temp = 1.0;
//         for(int i = 0;i < n;++i)
//         {
//             temp *= x;
//         }
//         return temp;
//     }
//     double myPow(double x, int n) {
//         double res;
//         if(x == 1)
//             return 1.0;
//         if(n > 0)
//             return my_cal(x, n);
//         else if(n < 0)
//         {
//             // 如果幂次小于0的话首先将幂次转为正数
//             n = abs(n);
//             // 将x转为对应的分数
//             x = 1 / x;
//             res = my_cal(x, n);
//         }
//         else
//             return 1.0;
//         return res;
//     }
// };
class Solution {
public:
    double quickM(double x, int n)
    {
        // 如果幂次为0的话就返回1.0
        if(n == 0)
            return 1.0;
        double temp = quickM(x, n / 2);
        // 如果幂次为奇数的话需要在结果之后再乘原来的数字
        return n % 2 == 0 ? temp * temp : temp * temp * x;
    }
    double myPow(double x, int n) {
        int tem = n;
        return tem > 0 ? quickM(x, n) : 1.0 / quickM(x, abs(tem));
    }
};
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号