求助大佬 80分错6和8测试点 c++
查看原帖
求助大佬 80分错6和8测试点 c++
666311
YangjinRun楼主2022/8/1 21:24
#include<bits/stdc++.h>
using namespace std;
int a,b,f[10000],z[10000],m[10000],s,temp,maxm,ans,i,x;
int main(){
	scanf("%d/%d",&a,&b);
	i=1;
	char c;
	while(cin>>c){
		scanf("%d/%d",&z[i],&m[i]);
		if(c=='+') f[i]=1;
		else f[i]=-1;
		maxm=max(maxm,m[i]);
		i++;
	}
	int l=i;
	for(i=maxm;;i++){
		if(i%b!=0) continue;
		bool f=true;
		for(int j=1;j<=l-1;j++){
			if(i%m[j]!=0){
				f=false;
				break;
			}
		}
		if(f==true){
			s=i;
			break;
		}
	}
	ans=a*s/b;
	for(i=1;i<=l-1;i++) ans+=f[i]*z[i]*s/m[i];
	for(i=min(ans,s);i>=2;i--){
		if(ans%i==0 && s%i==0){
			ans/=i;
			s/=i;
		}
	}
	if(s<0){
		s=-s;
		ans=-ans;
	}
	if(ans%s==0) cout<<ans/s;
	else cout<<ans<<"/"<<s;
	return 0;
}
2022/8/1 21:24
加载中...