首页 > 编程语言 >算法:快速幂

算法:快速幂

时间:2023-03-19 10:33:34浏览次数:33  
标签:24 int 算法 ans 次方 快速

思想

快速幂的思想其实很简单,数学告诉我们,\(2^7\) 可以写成:

$ 24·22·2^1 $

观察上式,不难发现,任何数的任意次方可以拆分成若干个二的不同次方次相乘。

据此我们对原指数进行二进制拆分,根据其每一位上 \(1\) 的有无,来判断是否作幂。

实现

代码(不保证正确性):

int fast_mi(int a,int n){
    int ans=0;
    while(n){
        if(n&1){
            ans+=a;  
        }   
        a*=a;
        n>>=1; 
    }
    return ans;
}

标签:24,int,算法,ans,次方,快速
From: https://www.cnblogs.com/mornhus-xsylf-123/p/17232571.html

相关文章

  • 能快速构建和定制网络拓扑图的WPF开源项目-NodeNetwork
    大家好,我是沙漠尽头的狼,今天介绍一个WPF开源项目-NodeNetwork,它可以帮助我们快速构建和定制网络拓扑图。一、前言在现代软件开发中,数据可视化和可交互性越来越受到关注。......
  • 算法之禅-递归01
    构造树,并求每条路径和第一步:构造树节点用到的类:publicclassNode{publicintVal{get;set;}publicNode?LNode{get;set;}publicNode?RNode{get;set;......
  • 负载均衡算法、类型
    1.轮询法将请求按照顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载2.随机法通过系统的随机算法,根据后端服务......
  • 负载均衡算法、类型
    1.轮询法将请求按照顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载2.随机法通过系统的随机算法,根据后端服务......
  • 算法学习笔记(19): 树上启发式合并(DSU on tree)
    树上启发式合并DSUontree,我也不知道DSU是啥意思这是一种看似特别玄学的优化可以把树上部分问题由\(O(n^2)\)优化到\(O(n\logn)\)。例如CodeForces600E。又......
  • 快速带你入门css
    css复习笔记1.css样式值1.1文字样式1p{2font-size:30px;/*设置文字大小*/3font-weight:bold;/*文字加粗*/4font-style:ital......
  • 快速带你复习html(超详细)
    此内容包含:html基础列表、表格媒体元素表单(重点)1、HTML基础目标:会使用HTML5的基本结构创建网页会使用文本相关标签排版文本信息会使用图像相关标签实现图文并......
  • 基于Astar算法的栅格地图最优路径搜索matlab仿真,可以修改任意数量栅格
    1.算法描述       Astar算法是一种图形搜索算法,常用于寻路。它是个以广度优先搜索为基础,集Dijkstra算法与最佳优先(bestfit)算法特点于一身的一种算法。它通过......
  • 光场原理及一些算法代码实现
    2023.3.18好久没有写过博客了,感觉自己比以前更菜了\(//∇//)\好不容易的更新,是为了把最近看的几篇光场论文写个自己的整理和理解,后面可能会写一些用C++实现的光场处理算......
  • 分治算法总结(未完结)
    分治思想:将一个问题分解成若干个结构与原问题相同的子问题。(划分子问题+后处理)一、经典问题1.最大子段和思路:计算左边的最大子段和、右边的最大子段和以及跨越......