解题思路:
注意事项:
参考代码:
#include<stdio.h>
typedef struct
{ long long int fz,fm;
}Fs;
long long int yue(long long int a,long long int b)
{ long long int z;
while(z=a%b)
{ a=b;
b=z;
}
return b;
}
Fs yin(Fs a,Fs b)
{ long long int zm,zz;
while(a.fm!=b.fm&&a.fz!=b.fz)
{ zm=b.fm/a.fm;
b.fm=a.fm;
a.fm=zm;
zz=b.fz/a.fz;
b.fz=a.fz;
a.fz=zz;
}
return a;
}
int main()
{ Fs b[100],t;
long long int n,a[100],i,j,z,m;
scanf("%lld",&n);
for(i=0;i<n;i++)
scanf("%lld",&a[i]);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{ z=a[i];
a[i]=a[j];
a[j]=z;
}
for(i=0,m=0;i<n-1;i++)
if(a[i]!=a[i+1])
{ b[m].fz=a[i+1]/yue(a[i+1],a[i]);
b[m].fm=a[i]/yue(a[i+1],a[i]);
m++;
}
if(m==1)
{ printf("%lld/%lld",b[0].fz,b[0].fm);
return 0;
}
for(i=0;i<m-1;i++)
for(j=i+1;j<m;j++)
if(b[i].fz>b[j].fz)
{ t=b[i];
b[i]=b[j];
b[j]=t;
}
t=yin(b[0],b[1]);
for(i=2;i<m-1;i++)
t=yin(t,b[i]);
printf("%lld/%lld",t.fz,t.fm);
return 0;
}
0.0分
4 人评分