zoukankan      html  css  js  c++  java
  • [Algorithm] Write your own Math.pow function in Javascript, using Recursive approach

    /**@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));
  • 相关阅读:
    初识 vue
    Spring boot 整合 Swagger
    Swagger 注解
    初识 Swagger
    初识 mycat
    SpringBoot中的国际化
    为什么博客园用户体验这么差?
    Numpy常用方法及应用总汇
    嵌入式开发10种常见数字滤波算法
    .gitignore使用
  • 原文地址:https://www.cnblogs.com/Answer1215/p/10497694.html
Copyright © 2011-2022 走看看