黑科技乘法(转载大佬dh)
作者:互联网
https://paste.ubuntu.com/p/TvcscVtsYf/
#include<bits/stdc++.h>
using namespace std;
const long long mo = 23333333333333333ll;
long long mul(long long x, long long y) {
x %= mo, y %= mo; //如果x,y已经<mo可以不用这句话,否则必须要
long long z = (long double) x * y / mo + 0.5; //加0.5相当于四舍五入,精度更好
z = x * y - z * mo; //利用了自然溢出,编译指令请不要加-ftrapv
return (z % mo + mo) % mo;
}
int main() {
printf("%lld\n", mul(12345678901234567ll, 987654321098765432ll));
}
标签:std,23333333333333333ll,const,dh,mo,long,大佬,乘法 来源: https://www.cnblogs.com/nibabadeboke/p/14990759.html