50分,代码感觉没问题,样例也过了
  • 板块P1572 计算分数
  • 楼主Rtaaa
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/11 19:06
  • 上次更新2023/11/2 14:27:14
查看原帖
50分,代码感觉没问题,样例也过了
678221
Rtaaa楼主2023/10/11 19:06
#include<bits/stdc++.h>
using namespace std;
struct fenshu{
	long long fenzi,fenmu;
}a[114514];
int gcd(int a,int b){
	return b>0?gcd(b,a%b):a;
}
int lcm(int a,int b){
	return a/gcd(a,b)*b;
}
int main(){
	char tfsx,fuhao;
	cin>>a[1].fenzi>>tfsx>>a[1].fenmu;
	int i=1;
	while(cin>>fuhao){
		
		i++;
		
		cin>>a[i].fenzi>>tfsx>>a[i].fenmu;
		
		//tong fen
		
		int fm1cj,fm2cj;
		fm1cj=lcm(a[i].fenmu,a[i-1].fenmu)/a[i].fenmu;
		a[i].fenmu=lcm(a[i].fenmu,a[i-1].fenmu);
		
		fm2cj=lcm(a[i].fenmu,a[i-1].fenmu)/a[i-1].fenmu;
		a[i-1].fenmu=lcm(a[i].fenmu,a[i-1].fenmu);
		
		a[i].fenzi=a[i].fenzi*fm1cj;
		a[i-1].fenzi=a[i-1].fenzi*fm2cj;
		
		
		//cao zuo
		
		if(fuhao=='+'){
			// fen mu bu bian , fen zi xiang jia
			a[i].fenzi=a[i].fenzi+a[i-1].fenzi;
		}
		
		if(fuhao=='-'){
			// fen mu bu bian , fen zi xiang jian
			a[i].fenzi=a[i-1].fenzi-a[i].fenzi;
		}
		
		//yue fen
		
		int gongyue=gcd(a[i].fenmu,a[i].fenzi);
		a[i].fenmu/=gongyue;
		a[i].fenzi/=gongyue;
	
	}
	if(a[i].fenmu==1)cout<<a[i].fenzi;
	else if(a[i].fenmu<0)cout<<-a[i].fenzi<<"/"<<-a[i].fenmu;
	else cout<<a[i].fenzi<<"/"<<a[i].fenmu;
}
2023/10/11 19:06
加载中...