快速幂||取余运算(模板)...
程序员文章站
2022-04-28 14:20:57
第二个板子!!!(第一个板子还没发) 有那么一种算法可以让计算a^b变得更快,那就是快速幂。如果直接暴力计算的话需要计算b次。时间蛮长的。 题目描述: 输入a,b.(a,b为整数)计算a^b。 输入输出格式 输入格式: 三个整数a、b。. 输出格式: 输出“a^b=s” s为运算结果 前提:你需要了 ......
第二个板子!!!(第一个板子还没发)
有那么一种算法可以让计算a^b变得更快,那就是快速幂。如果直接暴力计算的话需要计算b次。时间蛮长的。
题目描述:
输入a,b.(a,b为整数)计算a^b。
输入输出格式
输入格式:
三个整数a、b。.
输出格式:
输出“a^b=s”
s为运算结果
前提:你需要了解二进制,十进制。位运算的知识(当然也可以没有,万事皆可模拟。)
代码:
//省略...... long long quickpow(int a,int b) { long long ans=1,base=a; while(b!=0) { if(b&1!=0) ans*=base; base*=base; b>>=1; //将b的二进制数向右移一位(相当于将b的二进制数的最后一位抹掉。) } return ans; }
但由于是乘方运算所以即便是long long也容易爆!
input:
2 11
output:
2048
先讲一下(&、>>)位运算.
&:‘&’叫做按位与。作用:把参与运算的两个数对应的二进制相与,只有对应的二进制均为1时,结果的对应位才为1,否则为0。(11)10==(1011)2.
>>:
我们以此输入输出来讲解一下。
a为底数,b为指数。
推荐阅读
-
php实现12306余票查询、价格查询示例
-
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
-
解决vue attr取不到属性值的问题
-
使用HTML5的链接预取功能(link prefetching)给网站提速
-
详解在Python的Django框架中创建模板库的方法
-
婚纱摄影网站制作思路和免费模板分享(低成本建站的方法)
-
bootstrap登陆界面模板(响应式web开发项目教程)
-
JavaScript拖拽效果示例网页解决快速拖拽的问题
-
使用Mysql5.x以上版本出现报错#1929 Incorrect datetime value: '' for column 'createtime'的快速解决方法
-
编写自定义的Django模板加载器的简单示例