acm
bine_
编程爱好者
展开
-
C++64位整型相乘取模的溢出处理(一)
在ACM中做题时经常会出现输出的结果要模以一个数,如模10^9+7,一般来说用64位整型long long(有些编译器是__int64)来保存答案是没有什么问题的,因为10^9+7没有超过2^31-1,即32位整型int也能存得下,int * int 也不会溢出 long long,但是就是有些坑爹的题目取模的数超过int,就有可能出现两个long long类型相乘时溢出的情况原创 2015-06-08 15:43:27 · 5406 阅读 · 0 评论 -
C++64位整型相乘取模的溢出处理(二)
上一篇博文讲了一种类似快速幂的方法解决long long相乘溢出的问题,方法中规中矩,这里再介绍一个有点类似“玄学”的方法,先直接上代码#include <iostream>using namespace std;const long long MOD = 1000000000000000000L;long long mul(long long a, long long b) { long原创 2015-06-08 16:58:54 · 2536 阅读 · 1 评论