10.数值的整数次方

数值的整数次方
  • 参与人数:5440时间限制:1秒空间限制:32768K
  •  算法知识视频讲解

题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
这道题的考点在于double类型的变量不能直接比大小。isZero()专用于比较两个double值的大小。
class Solution {
public:
    double Power(double base, int e) {
    	if ( isZero( base ) && e != 0 )
            return 0 ;
        if ( e == 0 )
            return 1 ;
        
        bool isMinus = false ;
        if ( e < 0 ) {
			isMinus = true ;
            e = -e ;
        }
        
        for ( int i = 0; i < e - 1; i++) {
            base *= 2 ;
        }
        if ( isMinus ) {
            base = 1 / base ;
        }
        return base ;
    }
    
    bool isZero ( double test ) {
        double zero = 0.0 ;
        if ( ( test - zero ) > -0.0000001 && ( test - zero ) < 0.0000001 ) {
            return true ;
        } else {
            return false ;
        }
    }
};


你可能感兴趣的:(10.数值的整数次方)