向大佬求助
  • 板块学术版
  • 楼主KomorKomor
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/28 22:35
  • 上次更新2024/1/29 09:23:29
查看原帖
向大佬求助
1106289
KomorKomor楼主2024/1/28 22:35
long long quickMul(long long a, long long b, long long mod) {
	a %= mod;
	b %= mod;
	long long ans = 0;
	while(b) {
		if(b & 1) {
			ans += a;
			if(ans >= mod) ans -= mod;
		}
		b >>= 1;
		a <<= 1;
		if(a >= mod) a -= mod;
	}
	return ans;
}


普通快速乘
long long quickMul(long long a, long long b, long long mod) {
	long long ans = 0;
	while(b) {
		if(b & 1) ans = (ans + a) % mod;
		a = (a+a) % mod;	// 计算机中加法比乘法快
		b >>= 1;
	}
	return ans;
}

大佬们能不能解释一下为什么第一段代码中想用减法来代替求模的if语句为什么不是while语句,只减一次能达到求模的作用吗

2024/1/28 22:35
加载中...