level 9
如题
开了个real结果在trunc的时候207了
结果也不对劲
2012年07月31日 13点07分
1
level 9
首先用的是两个int64相乘 爆了
其次用的是两个inc64相乘
function clc(a,b:int64):int64;
varw1,w2,r,m,tt:double;
beginm:=xm;
w1:=a;w2:=b;
tt:=w1*w2;
r:=trunc(tt/m);
tt:=tt-m*r;
a:=trunc(tt);
exit(a);
end;
但是会出现207错误 求分析
2012年07月31日 13点07分
2
level 12
为什么不用同余定理呢?
function clc(a,b:int64):int64;
begin
exit(((a mod g)*(b mod g))mod g);
end;
2012年07月31日 13点07分
4
level 6
快速乘。
int64 mul(int64 x,int64 y){ int64 res=0; for(;y;y>>=1,x=(x+x)%mod)if(y&1)res=(res+x)%mod; return res;}
2012年07月31日 13点07分
5
level 9
我的算法可能有问题吧
我是在运算的时候一直用的mod m而不是g,g是最后mod的
2012年07月31日 14点07分
7