求教大佬
  • 板块学术版
  • 楼主Episode33_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/3 12:15
  • 上次更新2024/3/3 12:20:26
查看原帖
求教大佬
1281118
Episode33_楼主2024/3/3 12:15

请大佬帮忙看看这题,自己始终找不出不能通过的测试用例。题目如下: 我写的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;
}

测试结果如下: 希望大佬帮忙看看,感激不尽!!!

2024/3/3 12:15
加载中...