社区讨论

re*=a%p;为什么会WA得36分?

P1226【模板】快速幂参与者 5已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@m0z4hlk4
此快照首次捕获于
2024/09/12 18:04
去年
此快照最后确认于
2025/11/04 21:21
4 个月前
查看原帖
CPP
#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;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...