hdu2035 快速幂
来源:互联网 发布:编程需要学的软件 编辑:程序博客网 时间:2024/04/28 12:01
本题是求A^B的最后三位数表示的整数,快速幂嘛,当然就是快速的求幂,时间复杂度可以达到log级。比如说本题,B的范围是10的5次方,那么计算17次左右就可以得到答案了,即使范围到了10的9次方也就是30多次而已。
其实这个的要点就是位运算和二进制,比如说计算x^45
(45)10=(101101)2
x^45 = x^32 * x^8 * x^4 * x^1
很明显计算出x,x^2,x^4,x^8...即可,位运算很容易做到这一点。
#include<stdio.h>const int mod=10000;int ans(int a,int b){ int ret=1; while(b) { if(1&b)ret=ret*a%mod; //printf("ret%d\n",ret); a=a*a%mod; //printf("a%d\n",a); b>>=1; } return ret;}int main(){ int A,B; while(scanf("%d%d",&A,&B)==2) { if(A==0&&B==0)return 0; printf("%d\n",ans(A,B)%1000); } return 0;}
0 0
- hdu2035 快速幂
- hdu2035--人见人爱A^B(快速幂函数)
- hdu2035
- HDU2035
- hdu2035
- hdu2035
- HDU2035
- hdu2035
- HDU2035
- hdu2035(快速幂取余)人见人爱A^B
- hdu2035 人见人爱A^B(快速幂取模)
- hdu2035 人见人爱A^B 快速幂取模
- hdu2035 人见人爱A^B(快速幂取模)
- hdu2035同余问题
- hdu2035 人见人爱A^B
- hdu2035 人见人爱A^B
- hdu2035人见人爱A^B
- HDU2035 人见人爱A^B
- git常见错误及解决方案总结
- Mediator - 中介者模式
- CentOS6.5 上的Icehouse 版本devstack 一键安装
- linux下的常用mysql命令
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析
- hdu2035 快速幂
- atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7
- 陌生人和富翁的交易
- Error处理:AnnotationAccess.java:695: 无法确定 <A>A 的类型参数
- java学习笔记:Eclipse打开现有项目
- ognl
- hduoj1000(A+B Problem)
- ibatis与hibernate及mybatis的比较(摘录整理)
- vjl;klxbXl;bzv;lb;l'azn;