精度问题求助
查看原帖
精度问题求助
105254
Piwry楼主2020/7/23 08:36

乘法代码:

inline ll mul(ll a, ll b, const ll M){
	ll d =a*(long double)b/M+0.5;
	ll ret =a*b-d*M;
	if(ret < 0)
		ret +=M;
	return ret;
}

我将代码第二行的

ll d =a*(long double)b/M+0.5;

换成

ll d =floor(a*(long double)b/M+0.5);

就过不了了,大概率是因运算出错卡死循环

可以确定 a*(long double)b大于零

求助qaq

2020/7/23 08:36
加载中...