题解 | #数值的整数次方#

数值的整数次方

http://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00


#define MIN 0.000001

double Power_unsigned(double base, unsigned int exponent)
{
	int i;
	double result = 1.0;

	if (exponent == 0)
		return 1;
	if (exponent == 1)
		return base;
	
	result = Power_unsigned(base, exponent >> 1);
    result *= result;
    
	if (exponent & 0x1)
		result *= base;

	
	return result;
}

double Power(double base, int exponent ) {
    double result = 1.0;

	if (base<MIN && base>-MIN && exponent < 0)
		return 0.0;

	unsigned int absE = (unsigned int)(exponent);
	if (exponent<0)
		absE = (unsigned int)(-exponent);
	
	result = Power_unsigned(base, absE);
	if (exponent < 0)
		result = 1.0 / result;
	return result;
}
全部评论

相关推荐

Rac000n:淘天-客户运营部-AI研发工程师,智能客服方向,暑期实习招聘,欢迎联系
点赞 评论 收藏
分享
03-26 12:00
已编辑
门头沟学院 Java
offer魅魔_oc...:100-200每天,你还要倒贴100
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务