Project Euler problem 48 处理乘法取模爆long long的方法
来源:互联网 发布:怎么安装软件,文件 编辑:程序博客网 时间:2024/05/22 11:15
呵呵 这题的猥琐之处在于你用快速幂中间过程都有可能爆了long long
不过我有处理爆long long 的方法
乘的时候用二分的方法去搞就没问题了。详见代码
#include <iostream>#include <cstdio>#include <cstring>#include <ctime>#include <cstdlib>#include <algorithm>#include <stack>#include <cmath>#include <vector>#define eps 1e-6#define INF 1000000007#define PI acos(-1.0)using namespace std;long long mod = 10000000000LL;long long multi(long long a, long long b, long long c){ long long ret = 0; while(b) { if(b & 1) { ret += a; if(ret >= c) ret -= c; } a += a; if(a >= c) a -= c; b >>= 1; } return ret;}long long fastmod(long long a, long long b, long long c)//a^b mod c{ long long ret = 1; a %= c; for (; b; b >>= 1, a = multi(a, a, c)) if (b & 1) ret = multi(ret, a, c); return ret;}int main(){ long long sum = 0; for(int i = 1; i <= 1000; i++) sum = (sum + fastmod(i, i, mod)) % mod; cout << sum << endl; return 0;}
- Project Euler problem 48 处理乘法取模爆long long的方法
- 处理乘法取模爆long long 的方法
- hdu 5446 Lucas定理,中国剩余定理,处理爆long long 的乘法取模运算
- project euler problem 22对文件的处理
- csu Problem D: Long Long
- Long Long 的使用
- oracle 的long raw 处理
- Mysql data to long错误的处理方法
- ORACLE中对LONG类型进行处理的方法
- /bin/rm: argument list too long 的处理方法
- rm: argument list too long 的处理方法
- /bin/rm: argument list too long 的处理方法
- ORACLE中对LONG类型进行处理的方法
- Project Euler:Problem 48 Self powers
- Project Euler Problem 48: Self powers
- Euler Project Problem 6
- project euler problem 11
- Project Euler Problem 81
- Cscope的使用
- sed,流编辑常用组合命令
- MPICH2安装和配置
- android下面的测试类
- Python程序和C程序的整合
- Project Euler problem 48 处理乘法取模爆long long的方法
- C# 制作个性签名
- reques总结
- WM_GETMINMAXINFO的作用
- 研发项目经理的管理
- 中国帅哥最多的城市排名
- java反射 String数组
- 即用即查Linux命令行实例参考手册代码
- dom解析和sax解析的特点