[LeetCode74]Pow(x,n)

2023-11-01 15:32
文章标签 pow leetcode74

本文主要是介绍[LeetCode74]Pow(x,n),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Implement pow(xn).

幂运算 Calculates x raised to the power of y.

Analysis:

If we just use the normal way of calculation, when face 1 to the power of 10000, the computation complexity is too high.

Consider this way:
If we want to get 2^10,

2^10 = 2^4 * 2^4 *2^2
2^4 = 2^2*2^2
2^2 = 2*2

Let's see this in a bottom-up way, totally it needs to loop n/2 > 0 times, first we have 2^1=2, then we can have 2^2 = 2*2=4, and again we have 2^4 = 4*4, (key point:) and if n%2==1, we need one more previous value, which is 2^2 here, so we have 2^4*2^4*2^2 = 2^10.

We use binary divide method.

Java

public double pow(double x, int n) {if(n<0){return 1.0/power(x, -n);}else {return power(x, n);}}public double power(double x, int n){if(n==0)return 1;double v = power(x, n/2);if(n%2==0)return v*v;elsereturn v*v*x;}
c++

double power(double x, int n){if(n==0)return 1;double v = power(x,n/2);if(n%2 == 0)return v *v;elsereturn v* v* x;
}
double pow(double x, int n) {if(n<0)return 1.0 / power(x,-n);elsereturn power(x,n);
}




这篇关于[LeetCode74]Pow(x,n)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/323989

相关文章

pow函数的性能测试

昨天在PKU上做了一题2187,限时3s。 算法主要耗时在多次求不同整数的平方。 当用pow函数求时,超时; 而直接乘才232ms。 相差也太大了吧。 于是就写了一段代码来测试pow的性能 首先产生10000个随机整数,然后重复1000次求整数的平方 #include <iostream>#include <cmath>#include <ctime>using Namespace std

50. Pow(x,n)

题目: 解答: 主要是求 n &gt; 0 n &gt; 0 n>0 的情况的计算,其他时候,可以通过转换得到。 而 n &gt; 0 n &gt; 0 n>0 的情况下, ​ n = a 0 2 0 + a 1 2 1 + a 2 2 2 … a m 2 m n = a_0 2^0 + a_1 2^1 + a_2 2^2 \ldots a_m 2^m n=a0​20+a1​21

pow(x, n).

Implement pow(x, n). 思路:只用判断n的情况,0,1,-1,然后判断n的奇偶,和符号; class Solution {public double myPow(double x, int n) {if(n == 0) return 1.0;if(n == 1) return x;if(n == -1) return 1.0 / x;double half = myPow(x

Super Pow

Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large positive integer given in the form of an array. Example1: a = 2b = [3]Result: 8 Example2: a = 2

Pytorch:Tensor基本运算【add/sub/mul/div:加减乘除】【mm/matmul:矩阵相乘】【Pow/Sqrt/rsqrt:次方】【近似:floor...】【裁剪:clamp】

一、基本运算:加减乘除 1、乘法 1.1 a * b:element-wise 对应元素相乘 a * b:要求两个矩阵维度完全一致,即两个矩阵对应元素相乘,输出的维度也和原矩阵维度相同 1.2 torch.mul(a, b):element-wise 对应元素相乘 torch.mul(a, b):是矩阵a和b对应位相乘,a和b的维度必须相等,比如a的维度是(1, 2),b的维度是(1,

leetcode 刷题之路 36 Pow(x, n)

Implement pow(x, n). 通过循环n次相乘的方法可以得到结果,但是时间效率不高,可能会引起Time Limited Exceed错误。 采用二分法可以达到O(logn)的时间复杂度,采用递归比较容易实现,需要注意的是当输入为-2147483648时,是不能直接变化成1.0/pow(-n)的,因为整数中负数的范围是-2147483648到2147483647,-214748364

Leetcode19: Pow(x,n)

Implement pow(x, n). class Solution {public:double myPow(double x, int n) {if(n == 0)return 1.0;if(n < 0)return 1.0/myPow(x, -n);double half = myPow(x, n>>1);if(n%2 == 0)return half*half;elseretur

50.实现 pow(x, n)函数的算法 ,计算 x 的 n 次幂函数

50. Pow(x, n) 题目 实现 pow(x, n),计算 x 的 n 次幂 (x^n)。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2^(-2) = 1/(2^2) = 1/4 = 0.25 注意:

低市值Pow赛道解析,探寻百倍潜力项目

随着铭文的火爆出圈,比特币减半的到来,关于Pow赛道的讨论也在变得火热,不少投资机构都将Pow赛道作为2024年分析的重点。Pow赛道又来已久,不少项目的市值都超过10亿美元,而对于大多数投资者来说,低市值高回报是我们重点埋伏的对象,今天就来盘点那些低市值的Pow项目,探寻超过百倍回报的项目。 1.Dynex Dynexcoin是基于DynexSolve芯片算法的神经形态超级计算区块链,提出有

力扣 50.pow(x,n)

class Solution { public:     double quickMul(double x,long long N){         if(N==0) return 1;         double value=quickMul(x,N/2);         return N%2==0?value*value:value*value*x;     }     d