求数值的的整数次方(模拟实现pow函数)

求数值的的整数次方:

实现double Power(double base , int exponent),求base的ponent次方。不能使用库函数,同时不考虑大数问题


自以为很简单的解法

double Power(double base, int exponent)
{
	double result = 0.0;
	for (int i = 1; i <= exponent; ++i)
	{
		result *= i;
	}
	return result;
}

考虑:输入的指数(exponent)小于1,也就是说零和负数怎么办?很明显上面的没有考虑这些情况。


优化

double Power(double base, int exponent)
{
	if (exponent ==0)
	{
		return 1;
	}
	if (exponent ==1)
	{
		return base;
	}
	int result = Power(base, exponent >> 1);
	result *= result;
	if (exponent & 0x01)
		result *= base;

	return result;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值