JavaScript——数值的整数次方(快速幂算法实现)

news/2024/7/19 14:25:58 标签: 幂函数, 快速幂算法, js, 剑指offer

题目描述

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

function Power(base, exponent)
{
    // write code here
    //方法一:调用幂函数
    //return Math.pow(base,exponent);
    
    //方法二:效率优化
    //连乘时间复杂度O(n)
    //当指数exponent很大时,选择快速幂算法,时间复杂度O(logn)
    //例如:2^13;指数13=1101(二进制数表示)
    var isGZero=true;//对指数进行判断,决定返回结果是res,还是res的倒数
    var res=1;
    if(exponent==0)
        return 1;//任何数的0次幂都为1
    if(exponent<0){
        exponent=-exponent;//指数设置为正的
        isGZero=false;
    }
    while(exponent>0){
        if(exponent&1==1){//从指数二进制表示的低位开始计算;可以减少连乘次数
            res*=base;
        }
        base*=base;
        exponent>>=1;
    }
    return isGZero?res:(1/res);
}

 


http://www.niftyadmin.cn/n/1426093.html

相关文章

JavaScript——合并两个有序链表

题目描述 输入两个单调递增的链表&#xff0c;输出两个链表合成后的链表&#xff0c;当然我们需要合成后的链表满足单调不减规则。 例如&#xff1a; 输入&#xff1a;链表一&#xff1a;1->3->5->7 链表二&#xff1a;2->4->6->8 输出&#xff1a;链…

Jsp 服务器resin的url重定向的摸索

最简单的是基于各种WEB服务器中的URL重写转向&#xff08;Rewrite&#xff09;模块的URL转换&#xff1a;这样几乎可以不修改程序的实现将 news.jsp?id234 这样的链接映射成 news/234.html&#xff0c;从外面看上去和静态链接一样。resin服务器上可以通过webinfo的web.xml来设…

JavaScript——反转链表

题目描述 输入一个链表&#xff0c;反转链表后&#xff0c;输出新链表的表头。 例如&#xff1a; 输入&#xff1a;a->b->c->d->e 输出&#xff1a;a<-b<-c<-d<-e 反转链表示意图如下&#xff0c;链表的最后一个元素next指向null。 /*function Li…

判断页面是否加载完

方法一&#xff1a; <iframe name"t" id"t" src"http://www.163.com" οnlοad"javascript:window.alert(ok!);" ></iframe> 方法二&#xff1a; <iframe name"t" id"t" src&qu…

JavaScript——重建二叉树

题目描述 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}&#xff0c;则重建二叉树并返回。 首先&#xff0c;在没有…

Ajax入门学习

Ajax实现异步数据检测 异步javascriptxml (XHTML,css,DOM,xml,xslt,XMLHttpRequest进行异步数据读取&#xff0c;用js绑定和处理所有数据) 工作原理相当于用户和服务器之间加了一个中间层&#xff0c;使用户操作与服务器响应异步化。 例&#xff1a; 1 用js来创建XMLHttpReque…

js——冒泡排序(bubbleSort)代码实现

排序算法入门算法&#xff1a;冒泡排序。大学时候接触C语言就应该知道这一算法。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>冒泡排序</title><!-- 1、冒泡排序思想&#xff1a;每一次…

js函数大全

js函数大全(转) 1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)5.得到表单中元素的名称和值:document.getE…