数值的整数次方

Posted wanglelelihuanhuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数值的整数次方相关的知识,希望对你有一定的参考价值。

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

思路:例如,我们要求一个数的16次方,可以先求这个数的平方,然后在平方的基础上再求这个数的4次方,在4次方的基础上求8次方,在8次方的基础上求16次方。

我们可以用如下公式求a的n次方

#include<iostream>
using namespace std;
double Power(double base, int exponent)

	double result = 0.0;
	if (exponent == 0) //指数为0
		return 1;
	else if (exponent == 1) //指数为1
		return base;
	else
	
		//递归先求平方,再求4次方,以此类推求n次方
		result = Power(base, exponent >> 1);
		result *= result;
		if (exponent & 0x1 == 1)//当为奇数次方时
			result *= base;
	
	return result;

int main()

	double base; //底数
	int exponent;//指数
	cout << "please enter two number:"<<endl;
	cin >> base;
	cin >> exponent;
	double ret = Power(base,exponent);
	cout << ret << endl;
	return 0;


以上是关于数值的整数次方的主要内容,如果未能解决你的问题,请参考以下文章

七周打卡剑指offer《数值的整数次方》

12.数值的整数次方

剑指:数值的整数次方

12 数值的整数次方

剑指offer12数值的整数次方

剑指offer-数值的整数次方