实现浮点类型的幂运算,pow(x,n) 您所在的位置:网站首页 道路工程绩效目标申报表怎么填 实现浮点类型的幂运算,pow(x,n)

实现浮点类型的幂运算,pow(x,n)

2023-12-26 16:23| 来源: 网络整理| 查看: 265

实现浮点类型的幂运算,函数原型为:

double pow(double x, int n)

下面介绍一下解决该问题的几种方法以及要注意的地方:

1)最直观容易想到的方法就是用递归方法求n个x的乘积,注意考虑n的正负号,时间复杂度为O(n)

[cpp]  view plain copy double pow(double x, int n)   {       if(n==0)           return 1.0;       if(n1);       if(n%2==0)           return half*half;       else           return half*half*x;   }  

3)除了上述方法,这里还提到了一种十分巧妙并且快速的方法,原文描述如下:

Consider the binary representation of n. For example, if it is "10001011", then x^n = x^(1+2+8+128) = x^1 * x^2 * x^8 * x^128. Thus, we don't want to loop n times to calculate x^n. To speed up, we loop through each bit, if the i-th bit is 1, then we add x^(1 0)                   ans *= x;           }           return ans;       }  



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有