#include<stdio.h>
long long gys(long long a,long long b){
long long y=a%b;
while(y)
{
a=b;
b=y;
y=a%b;
}
return b;
}
int main()
{
int n;
scanf("%d",&n);
//long long a[n*2];
long long a[200]; //200!
for(int i=0;i<n*2;i+=2)//
{
scanf("%lld/%lld",&a[i],&a[i+1]);
}
long long p,q,fz=a[0],fm=a[1];
int count=1;
for(int i=2;i<n*2;i+=2)
//
{
long long gys1=gys(fm,a[i+1]);//2,6:2
p=fm/gys1*a[i+1];//2*6/2=6//
q=p/fm*fz+p/a[i+1]*a[i];//4//
long long gys2=gys(q,p);
p/=gys2;q/=gys2; //3,2
fm=p;fz=q;
count++;//2
}
fm=fm*n;
long long gys3=gys(fz,fm);//
fz/=gys3;fm/=gys3;
if(fm==1) printf("%lld",fz);
else{
printf("%lld/%lld",fz,fm);
}
return 0;
}
本题为计算平均数 为什么把
fm=fm*n;
long long gys3=gys(fz,fm);//
这两句变成long long gys3=gys(fz,fm*n);输出结果就是错误的?