代码:
#includeusing namespace std; typedef long long LL; LL a,b,p; //把b拆成2位进制 int main() { cin>>a>>b>>p; LL res = 0; while(b) { if(b&1) res = (res + a)%p; a = (a*2)%p; b>>=1; } cout << res< 感想:太容易溢出了,救命 害
对于(a%p)*(b%p)依然容易溢出,因为对于p十分大的时候,a%p是没有用的,同理b%p也是没有用的,最后依然可能是 a*b的效果而导致溢出
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)