#include<iostream>
using namespace std;
int B_shu(long int b,long int a);
int B_shu1(long int b, long int a);
int main()
{
long int all_fz=0;
int N;
long int z = 1;//為最小公倍數
cin >> N;
long int a[100][2];
for (int i = 0;i < N;i++)
{
scanf_s("%ld/%ld", &a[i][0], &a[i][1]);
if (a[i][1] == 0)
{
exit(0);
}
}//輸入
for (int x = 0;x < N;x++)
{
int q = B_shu(z, a[x][1]);
z = q;
}//z為最小公倍數;
for (int i = 0; i < N; i++)
{
a[i][0] = (z / a[i][1]) * a[i][0];
all_fz +=a[i][0];
}
long int min_bs= B_shu1(all_fz, z);
all_fz = all_fz / min_bs;
z = z / min_bs;//最簡形式
long int zheng_s = all_fz % z;
if (zheng_s == 0)
{
cout<<all_fz/z<<endl;
}
else
{
if (zheng_s > 0)
{
if (all_fz / z != 0)
{
cout << all_fz / z<<" ";
}
cout << zheng_s << "/"<<z<<endl;
}
else
if (all_fz/z!=0)
{
cout << all_fz / z << " " << -1 * zheng_s << "/" << z << endl;
}
else
{
cout << zheng_s << "/" << z << endl;
}
}
return 0 ;
}
int B_shu(long int b,long int a)
{
long int z=1;
long int x=0;
long int m, n;
m = b;
n = a;
while (z != 0)
{
z = b % a;
b = a;
a = z;
}
x = m * n / b;
return x;
}
int B_shu1(long int b, long int a)
{
long int z = 1;
while (z != 0)
{
z = b % a;
b = a;
a = z;
}
return b;
}
uj5u.com熱心網友回復:
可以用編譯器除錯一下轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69190.html
標籤:C++ 語言
上一篇:fitEllipse橢圓擬合
