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

数值的整数次方

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;
}
全部评论

相关推荐

10-21 00:37
已编辑
山东大学 C++
小浪_Coding:你问别人,本来就是有求于人,别人肯定没有义务免费回答你丫, 有点流量每天私信可能都十几,几十条的,大家都有工作和自己的事情, 付费也是正常的, 就像你请别人搭把手, 总得给人家买瓶水喝吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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