请大佬帮忙看看这题,自己始终找不出不能通过的测试用例。题目如下:
我写的C++代码如下:
#include<iostream>
#include<vector>
#include<numeric>
#include<cstdio>
using namespace std;
int main()
{
int N;
cin >> N;
vector<long long> num1, num2;
for (int i = 0; i < N; i++)
{
long long a, b;
scanf("%lld/%lld", &a, &b);
num1.push_back(a);
num2.push_back(b);
}
long long mut = num2[0];
for (int i = 1; i < N; i++)
mut *= num2[i] / gcd(mut,num2[i]);
for (int i = 0; i < N; i++)
{
num1[i] *= mut / num2[i];
}
for (int i = 1; i < N; i++)
num1[0] += num1[i];
int a = gcd(num1[0] % mut, mut);
if (num1[0] / mut != 0 && num1[0] % mut != 0)
cout << num1[0] / mut << ' ' << num1[0] % mut / a << '/' << mut / a;
else if (num1[0] / mut != 0 && num1[0] % mut == 0)
cout << num1[0] / mut;
else if (num1[0] / mut == 0 && num1[0] % mut != 0)
cout << num1[0] % mut / a << '/' << mut / a;
else
cout << 0;
return 0;
}
测试结果如下:
希望大佬帮忙看看,感激不尽!!!