求助:只输出零
查看原帖
求助:只输出零
661595
a2lyaXNhbWUgbWFyaXNh楼主2022/8/23 17:27

code:

#include<bits/stdc++.h>
using namespace std;
void exgcd(long long a,long long b,long long &x,long long &y){
	if(!b){
		x=1,y=0;
		return;
	}else{
		exgcd(b,a%b,x,y);
		long long t=x;
		x=y;
		y=t-(a/b)*y;
	}
}
long long crt(long long k,long long a[],long long r[]){
	long long n=1,ans=0,m,x,y;
	for(long long i=1;i<=k;i++)
		n=n*r[i];
	for(long long i=1;i<=k;i++){
		m=n/a[i];
		exgcd(m,a[i],x,y);
		ans=((ans+m*x*r[i])%n+n)%n;
	}
	return (ans+n)%n;
}
long long n,a[10],r[10];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i]>>r[i];
	cout<<crt(n,a,r);	
	return 0;
}

自我感觉没啥问题

2022/8/23 17:27
加载中...