当前位置: 首页 > 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;

    }

}

相关文章:

  • 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自带的链表函数
  • 国家林草局原党组成员、副局长李春良接受审查调查
  • 广州一饮品店取名“警茶”?市监局:取名没问题,但图像会产生误解
  • 特朗普访中东绕行以色列,专家:凸显美以利益分歧扩大
  • 郑州通报涉“健康证”办理有关问题查处进展情况
  • 在对国宝的探索中,让美育浸润小学校园与家庭
  • 人民币对美元即期汇率盘中创半年新高,离岸市场升破7.2