解题思路:
注意事项:找分母的最小公倍数,求分子分母最大公约数。
参考代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdio.h>
int main()
{
int m,n,i,j,h,t,x,y,tem1,tem2,temn,mcc,aa,bb,cc,gcd,x1,y1,z,z1;
char c;
int a[10];
int b[10];
scanf("%d",&n);
if(n==1)
{
scanf("%d%c%d",&x1,&c,&y1);
z=x1;z1=y1;
if(z<z1)
{
j=z;
z=z1;
z1=j;
}
while(z!=0)
{
h=z;
z=z1%z;
z1=h;
}
printf("%d%c%d\n",x1/z1,c,y1/z1);
}
else{ for(i=0;i<n;i++)
scanf("%d%c%d",&a[i],&c,&b[i]);
for(i=0;i<n-1;i++)
{
m=b[i];
t=b[i+1];
while(m!=0)
{
x=m;
m=t%m;
t=x;
}
y=t;
tem1=b[i]/y;
tem2=b[i+1]/y;
mcc=tem1*tem2*y;
temn=a[i]*tem2+a[i+1]*tem1;
aa=mcc;bb=temn;
while(aa!=0)
{
cc=aa;
aa=bb%aa;
bb=cc;
}
gcd=bb;
mcc/=gcd;
temn/=gcd;
a[i+1]=temn;
b[i+1]=mcc;
}
if(b[n-1]>1)
printf("%d%c%d\n",a[n-1],c,b[n-1]);
else
printf("%d\n",a[n-1]);}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复