求教大佬
  • 板块题目总版
  • 楼主Episode33_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/3 13:45
  • 上次更新2024/3/3 15:32:29
查看原帖
求教大佬
1281118
Episode33_楼主2024/3/3 13:45

用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 13:45
加载中...