在C ++中为pow(x,y)编写一个迭代O(Log y)函数
在这个问题上,我们给了两个整数x和y。我们的任务是使用迭代方法创建一个等效于pow(x,y)的函数,该方法将以0(Logy)的时间复杂度完成任务。
让我们举几个例子来了解这个问题,
输入值
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
热门推荐
1 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法