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

数值的整数次方

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-10 00:14
门头沟学院 Java
程序员小白条:20年架构师,无工资
点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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