分数求和
#include <iostream>
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,i,a[101],b[101],fm = 1,fz = 0;
char ch;
scanf("%d",&n);
for(i = 0;i < n;i ++){
scanf("%d%c%d",&a[i],&ch,&b[i]);
}
for(i = 0;i < n;i ++){
if(fm % b[i] != 0){
fm = fm * b[i];//找最小公倍数
}
}
for(i = 0;i < n;i ++){
a[i] = a[i] * (fm / b[i]);
fz = fz + a[i];
}
if(fz % fm == 0){
printf("%d\n",fz / fm);
}
else{
for(i = 2;i < fm || i < fz;i ++){
while(fz % i == 0 && fm % i == 0){
fz = fz / i;
fm = fm / i;
}
}
if(fz > fm){
printf("%d",fz / fm);
fz = fz - (fz / fm) * fm;
printf("%d/%d\n",fz,fm);
}
else{
printf("%d/%d\n",fz,fm);
}
}
return 0;
}
请多多指教!smile