用 C++ 编写一个 O(Log y) 迭代 pow(x, y) 函数
在此问题中,我们获得两个整数 x 和 y。我们的任务是创建一个函数,其将通过迭代方法与 pow(x,y) 等效,该方法将在时间复杂度为 0(Log y) 的情况下完成任务。
我们举几个例子来理解该问题,
输入
x = 7 , y = 3
输出
343
pow(x,y) 的迭代函数将迭代并更新 y 的奇数值的结果,将其乘以 x,并在每次迭代时将 x 更新为 x2。
显示解决方案实现的程序
示例
#include <iostream>
using namespace std;
void calcPower(int x, unsigned int y) {
int result = 1;
while (y > 0) {
if (y & 1)
result *= x;
y = y >> 1;
x = x * x;
}
cout<<result;
}
int main() {
int x = 7;
unsigned int y = 3;
cout<<x<<" raised to "<<y<<" is ";
calcPower(x,y);
return 0;
}输出
raised to 3 is 343
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP