当前位置: 首页 > news >正文

LeetCode 1922题解(快速幂模板题)

这就是快速幂的计算方式,将一个幂次方计算公式拆分后计算

这一题就是典型的快速幂的模板题,前几天因为写题遇到了知识盲区所以弄了很久,昨天的困难题也没做出来,只有自己的计算思路,实现还跑不出来,气死我了,今天也刚刚学会了快速幂

对于本题我们可以对答案进行拆分,分为两部分,一个计算偶数下标的幂次方,一个计算奇数下标的幂次方
偶数有0,2,4,6,8;一共5个
质数有2,3,5,7;一共4个

所以偶数下标计算5的幂次方
奇数计算4的幂次方

位数由n决定

而位数n对应的偶数下标个数为(n+1)/2奇数小标个数为n/2

而遍历的幂次方根据二进制的位运算进行遍历拆分幂次方计算(n&1)>0,只有1和0两种情况

class Solution {

    private static final int MOD = 10_0000_0007;

  

    public int countGoodNumbers(long n) {

        return (int)(pow(5,(n+1) / 2)*pow(4,n / 2) % MOD);

    }

  

    public long pow(long x,long n){

        long res = 1;

        while(n>0){

            if((n&1)>0){

                res = res*x%MOD;

            }

            x = x*x%MOD;

            n = n>>1;

        }

        return res;

    }

}
http://www.dtcms.com/a/133147.html

相关文章:

  • 9.thinkphp的请求
  • (C语言)算法复习总结2——分治算法
  • C++之 多继承
  • 【C++11】智能指针
  • 第十六届蓝桥杯Java b组(试题C:电池分组)
  • LabVIEW 程序持续优化
  • [react]Next.js之自适应布局和高清屏幕适配解决方案
  • 2025SQCTF赛题复现
  • 泰勒公式的深入研究
  • 【信息系统项目管理师】高分论文:论信息系统项目的整合管理(旅游景区导游管理平台)
  • Laravel 使用通义灵码 - AI 辅助开发提升效率
  • 【vue】双向绑定
  • git安装(windows)
  • 一文读懂WPF系列之控件模版数据模板
  • LeetCode LCR157 套餐内商品的排列顺序
  • Java基础关键_037_Java 常见新特性
  • 深度解析Redis过期字段清理机制:从源码到集群化实践 (二)
  • OSPF单区域配置实验
  • 软件测试之单元测试详解
  • [LVGL] 使用lvgl自带的链表函数
  • CSV文件中的中文乱码--UTF-8 with BOM
  • DeepSeek 与开源:肥沃土壤孕育 AI 硕果
  • react/vue中前端多图片展示页面优化图片加载速度的五种方案
  • 高德地图 JS-SDK 实现教程
  • LFM调制信号分类与检测识别
  • electron-builder参数详解
  • 医用多功能压力检测仪,精密医疗的守护者
  • 04 GE - 钳制属性,等级
  • 面向MoE和推理模型时代:阿里云大数据AI产品升级发布
  • k8s中缩放pod规格