/**@abstract* Write your own Math.pow(a int, b int) function*  */function pow (a, b) {let result = 0;let nigate = b < 0;b = nigate ? b*(-1) : b;if (b === 0) {result = 1;}let isEven = b % 2 === 0;if (b === 1) {result = a;}if (b >= 2) {result = isEven ? pow(a, b / 2) * pow(a, b / 2)  : a * pow(a, b-1);}return nigate ? 1 / result : result;
}console.log(pow(0, 0) === Math.pow(0,0));
console.log(pow(0, -2) === Math.pow(0, -2));
console.log(pow(0, 1) === Math.pow(0, 1));
console.log(pow(0, 2) === Math.pow(0, 2));
console.log(pow(0, 3) === Math.pow(0, 3));
console.log(pow(-4, 3) === Math.pow(-4, 3));
console.log(pow(-4, -3) === Math.pow(-4, -3));
console.log(pow(4, 3) === Math.pow(4,3));
console.log(pow(4, -3) === Math.pow(4, -3));
console.log(pow(4, 2) === Math.pow(4,2));
console.log(pow(4, -2) === Math.pow(4, -2));
console.log(pow(-4, 1) === Math.pow(-4, 1));
console.log(pow(4, 1) === Math.pow(4, 1));

转载于:https://www.cnblogs.com/Answer1215/p/10497694.html

[Algorithm] Write your own Math.pow function in Javascript, using Recursive approach相关推荐

  1. java 常量折叠_V8 使用“常量折叠”优化技巧,导致幂(**)运算有时候不等于 Math.pow()...

    在如今的主流 Web 编程语言中,如 PHP 或 Python 等,都包含幂运算符(一般来说符号是 ^ 或者 **).而最新的 ES7 中也增加了对幂运算的支持,使用符号 **,最新的 Chrome ...

  2. python里x.pow2_带有Python示例的math.pow()方法

    python里x.pow2 Python math.pow()方法 (Python math.pow() method) math.pow() method is a library method o ...

  3. Math.cbrt() Math.sqrt() Math.pow()

    Math.pow() 能实现 Math.cbrt() 和 Math.sqrt() 的功能,但并不完全相同. 1. Math.pow()和Math.cbrt()的区别 function isCube(m ...

  4. html四舍五入函数,Javascript四舍五入(Math.round()与Math.pow())

    代码 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ ...

  5. Math.pow(x,y)使用注意事项

    首先明确Math.pow(x,y)的作用就是计算x的y次方,其计算后是浮点数,这里先看一个例子: 例1:153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3* ...

  6. Math.Pow()是如何在.NET Framework中实现的?

    我一直在寻找一种计算b的有效方法(比如a = 2和b = 50 ). 为了开始,我决定看一下Math.Pow()函数的实现. 但在.NET Reflector中 ,我发现的只有: [MethodImp ...

  7. java Math类中的pow方法的问题Math.pow(64,1/3)是1而不是4

    2019独角兽企业重金招聘Python工程师标准>>> 因为Math.pow(x,y)这个函数是求x的y次方,x,y的值都是浮点类型的,而你现在要求的是pow(64,1/3),那么也 ...

  8. boost::math::pow相关用法的测试程序

    boost::math::pow相关用法的测试程序 实现功能 C++实现代码 实现功能 boost::math::pow相关用法的测试程序 C++实现代码 #include <cmath> ...

  9. Java黑皮书课后题第5章:**5.25(计算π)使用下面的数列可以近似计算π:4(1-1/3+1/5-1/7+……+(Math.pow(-1, i+1)/(2*i-1))

    @[TOC](5.25(计算π)使用下面的数列可以近似计算π:4*(1-1/3+1/5-1/7+--+(Math.pow(-1, i+1)/(2*i-1))) 题目 题目概述 5.25(计算π)使用下 ...

  10. 关于 Math.pow 的一个坑

    今天发现即使 pow(double a, double b) 中的 a 和 b 都是 int 类型,返回值直接 cast to int 还是会出问题.比如 (int) Math.pow(10, 4)可 ...

最新文章

  1. java安装傻瓜_安装Java傻瓜式教程
  2. graphic头文件函数_graphics.h头文件详解
  3. 记一次configuration wizard运行失败
  4. 【收藏】Oracle存储过程读写文件
  5. OpenKruise v0.10.0 新特性 WorkloadSpread 解读
  6. SAP成都研究院蓝水晶(Blue Crystall)团队参加米其林全球挑战赛
  7. 开发人员一定要加入收藏夹的网站(引用)
  8. 我的LINUX之路----linux目录文件管理
  9. 给文件的每一行后面加一个String:context
  10. Eclipse中 Junit 正常运行完了 可是方法覆盖率全红 解决办法 (附带②EclEmma插件安装方法④覆盖率抽出与合并)
  11. request对象_爬虫:request库的简介
  12. 另存为映射技术,异速联让导出导入更简单
  13. 企业级多用户发卡平台源码 源码完全开源 无任何加密
  14. KEYCODE 按键列表
  15. Android studio编程常用控件
  16. 2021大纲新增词汇
  17. JSP页面如何从一个页面传递一个参数到另外一个页面
  18. 如何下载并安装Firebug插件
  19. 【简介】流程化项目管理咨询师刘俊平介绍
  20. SQL DXP 6.6.x 高级版--最新版

热门文章

  1. spss clementine Twostep Cluster(两步聚类 二阶聚类)
  2. 泛化性的危机!LeCun发文质疑:测试集和训练集永远没关系...
  3. 【人才引进】博士补贴75万,硕士补贴20万,这个南方城市,高待遇引才150人!...
  4. 【博士后招聘】清华大学计算机系自然语言处理与社会人文计算实验室面向海内外招聘博士后...
  5. pytorch自然语言处理之Pooling层的句子分类
  6. 新年干货 | NLP一路走来的经验之谈
  7. python科学计算之Pandas使用(一)
  8. Pytorch损失函数BCELoss,BCEWithLogitsLoss
  9. 大数据技术全解之三分虚拟化技术、七分分布式管理、十二分大数据
  10. Objective-C的算术表达式