快速幂(全网最详细)

点击此处传送到全网最详细博客

 

代码1:

    public int fastPower(int x, int n) {
       int result = 1;
       while (n > 0 ){
           if(n % 2 == 0){
               //如果指数为偶数
               n = n / 2; //把指数缩小为一半
               x = x * x % 1000; //底数变大成原来的乘方
           }else {
               //如果结果为奇数
               n = n - 1;   //把指数减去1,使其变成一个偶数
               result = result * x % 1000; //此时记得要把指数为奇数时分离出来的底数的一次方收集好
               n = n / 2;   //此时指数为偶数,可以继续执行操作
               x = x * x % 1000;
           }
       }

       return result;
    }

优化1:压缩

    public int fastPower(int x, int n) {
       double result = 1;
       while (n > 0 ){
           if(n % 2 == 1){
               result = result * x % 1000; //此时记得要把指数为奇数时分离出来的底数的一次方收集好
           }
           n = n / 2;   //此时指数为偶数,可以继续执行操作
           x = x * x % 1000;
       }

优化2:位运算(目前更强)

    public int fastPower(int x, int n) {
       int result = 1;
       while (n > 0 ){
           if((n & 1) == 1){    //此处等价于if(power%2==1)
               result = result * x % 1000; //此时记得要把指数为奇数时分离出来的底数的一次方收集好
           }
           n = n >> 1;   //此处等价于power=power/2
           x = x * x % 1000;
       }

       return result;
    }

 

 

对于全网详细的VSCode教程,以下是一个简短的描述: 全网详细的VSCode教程应该包含以下内容:基本介绍、安装和设置、编辑器布局、常用快捷键、实用插件和扩展、调试功能、版本控制、代码片段等。 在基本介绍部分,应该详细介绍VSCode是什么,它的优点和特点,如何下载和安装等。 安装和设置部分应该涵盖不同操作系统上的安装步骤和注意事项。同时,还应该介绍不同配置选项,如主题、字体、缩进设置等。 编辑器布局部分应该解释各个面板和视图的作用,如侧边栏、编辑窗口、终端等。详细说明如何调整布局以优化工作流程。 常用快捷键部分应该列举常用的快捷键和相关操作,如快速打开文件、搜索、查看定义等。应该对不同功能区分操作系统进行说明。 实用插件和扩展部分应该介绍一些常见和有用的插件,如代码片段、代码格式化、调试器等。应该详细解释如何安装和使用这些插件。 调试功能部分应该详细介绍如何配置和使用调试器,包括设置断点、查看变量的值等。 版本控制部分应该介绍如何使用内置的版本控制工具,如Git,如何提交、推送和拉取代码等。 最后,代码片段部分应该教授如何创建和使用代码片段,以提高编码效率。 以上仅是对全网详细的VSCode教程的一些简要描述。当然,真正最详细的教程可能比这个更加全面和详细,具体内容可能还包括更多高级功能和技巧。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值