前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剑指offer--数值的整数次方

剑指offer--数值的整数次方

作者头像
AI那点小事
发布2020-04-20 16:14:25
3010
发布2020-04-20 16:14:25
举报
文章被收录于专栏:AI那点小事

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


Java代码:

代码语言:javascript
复制
public class Solution {
    public double Power(double base, int exponent) {
       double result = 1.0;
        if ( exponent == 0.0){
           return 1.0;
       }else if ( exponent > 0){
           for(int i = 0 ; i < (int)(exponent) ; i++){
               result *= base;
           }
       }else{
           if ( base == 0){
               throw new RuntimeException("分母不能为0");
           }
           exponent = -exponent;
           for ( int i = 0 ; i < exponent ; i++){
               result *= base;
           }
           result = 1/result;
       }
        return result;
    }
}

C++代码:

代码语言:javascript
复制
#include <cmath>
using namespace std;

class Solution {
    public:
        int equal(double a,double b){
            return fabs(a-b) < 0.000001;
        }

        double Power(double base, int exponent) {
            # 0的0次幂没有意义,因此要把base为0的情况排除在外
            # 浮点数的相等需要利用函数,而不是base == 0.0这样的语句 
            if(exponent == 0 && !this->equal(base,0.0)){
                return 1.0;
            }
            int n = (exponent>0)?exponent:-exponent;
            double result = 1.0;
            for(int i = 1 ; i <= n ; i++){
                result *= base;
            }
            return (exponent>0)?result:1.0/result;
        }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档