乐趣区

关于算法-数据结构:一周刷完剑指offer12数值的整数次方

数值的整数次方

1. 题目形容

给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent。求 base 的 exponent 次方。
保障 base 和 exponent 不同时为 0

2. 示例

简略,无

3. 解题思路

求 base 的 exponent 次方

  1. 首先,判断 exponent 是否为正数, 如果是则标记,并转为正整数
  2. 循环相乘
  3. 判断 exponent 的标记,如果是正数,则取倒数

4. Java 实现

public class Solution {public double Power(double base, int exponent) {
        
        double res = 1.0;
        if(base == 0) return 0;
        if(exponent == 0) return res;
        
        boolean flag = true;
        
        if(exponent < 0){
            flag = false;
            exponent = -exponent;
        }
        
        for(int i = 0; i< exponent; i++){res *= base;}
        
        return flag ? res : 1/ res;
            
        
  }
}

5. Python 实现

# -*- coding:utf-8 -*-
class Solution:
    def Power(self, base, exponent):
        # write code here
        # 能够不必转换 base 为正整数
        res = 1.0
        flag = True
        if base == 0:
            return 0
        if exponent == 0:
            return 1
        
        if exponent < 0:
            flag = False
            exponent = -exponent
        
        for i in range(exponent):
            res *= base
            
        return res if flag else 1/res

如果您感觉本文有用,请点个“在看”

退出移动版