BITACM 1045 A^B mod C v2.0
来源:互联网 发布:时尚软件app排行榜 编辑:程序博客网 时间:2024/05/16 15:16
这类取模问题需要注意数据的范围。
这题A,B,C都达到了long long的范围,那么你做乘法就会有一个溢出的问题。
所以你需要一个特殊的mul_mod函数来处理乘法。。。这个函数援引自aekdycoin的博客。
#include "cstdio"#define LL long long/*LL mul_mod(LL a,LL b,LL n){ if(b==1) return a%n; if(b%2==0) return mul_mod((2*a)%n, (b/2)%n, n); return mul_mod((2*a)%n, (b/2)%n, n)+a;}*/LL mul_mod(LL a,LL b,LL c){ LL ret=0,tmp=a%c; while(b) { if(b&0x1)if((ret+=tmp)>=c)ret-=c; if((tmp<<=1)>=c)tmp-=c; b>>=1; } return ret;}LL pow_mod(LL a,LL p,LL n){ if(p==0) return 1%n; LL ans=pow_mod(a,p/2,n); ans=mul_mod(ans, ans, n); if(p%2==1) ans=mul_mod(ans, a, n); return ans%n;}int main(){ LL a,b,c; while(scanf("%lld%lld%lld",&a,&b,&c)!=EOF){ a%=c; printf("%lld\n",pow_mod(a, b, c)); } return 0;}
0 0
- BITACM 1045 A^B mod C v2.0
- BITACM 1056 A^B mod C v3.0
- BITACM 1044 A^B mod C
- A^B mod C
- A^B mod C
- A^B mod C
- BIT1044 A^B mod C
- 1046 A^B Mod C
- 1046 A^B Mod C
- 求a^b mod c
- 1046 A^B Mod C
- 1046 A^B Mod C
- Super A^B mod C
- 1046 A^B Mod C
- (A^B mod C)|(a^(n!) mod c)
- 模取幂运算 (a^b mod c)
- 【收藏】A^B mod C代码
- FZU 1752 A^B mod C
- hdu 4309 状压枚举+最大流
- lex和yacc例子
- Java中Properties类的使用
- SQLITE3 使用总结
- poj 3187
- BITACM 1045 A^B mod C v2.0
- winpcap学习(一)
- android actionbar 直接显示在 actionbar栏上面
- 获取logcat日志
- HDU 4135 Co-prime 解题报告(因式分解 + 容斥原理)
- C#专题二:教务管理系统中的另个一个登陆方式(另附资源链接)
- 宇野実彩子-好莱坞明星
- 图像处理相关的重要期刊汇总
- uva 10149 - Yahtzee(DP)