解题思路:
注意事项:
参考代码:
#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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复