re*=a%p;为什么会WA得36分?
查看原帖
re*=a%p;为什么会WA得36分?
1159838
Dream_2522181190楼主2024/9/12 18:04
#include<bits/stdc++.h>
using namespace std;
long long fun(long long a, long long b, long long p)
{
	long long re = 1;
	while (b)
	{
		if (b & 1)re *=a % p;//为什么这么写会WA得36分? 而re=re*a%p会AC?
		a = a * a % p;
		b >>= 1;
	}
	return re % p;
}
int main()
{
	long long a, b, p;
	cin >> a >> b >> p;
	cout << a << '^' << b << ' ' << "mod" << ' ' << p << '=' << fun(a, b, p);
	return 0;
}
2024/9/12 18:04
加载中...