#include using namespace std;

// 求最大公约数 int gcd(int a, int b) { if (b == 0) { return a; } return gcd(b, a % b); }

int main() { int n, sum_up = 0, sum_down = 1; // 分别记录分子和分母的和,初值分别为0和1 cin >> n; for (int i = 0; i < n; i++) { int up, down; char slash; // 用于读入'/'符号 cin >> up >> slash >> down; // 求当前分数与上一次求和结果的最大公约数 int d = gcd(up, down); // 化简当前分数 up /= d; down /= d; // 计算分子和分母的和 sum_up = sum_up * down + up * sum_down; sum_down *= down; // 求和后再次化简 d = gcd(sum_up, sum_down); sum_up /= d; sum_down /= d; } if (sum_down == 1) { // 分母为1,直接输出分子 cout << sum_up << endl; } else { // 分数形式输出 cout << sum_up << '/' << sum_down << endl; } return 0;


原文地址: https://www.cveoy.top/t/topic/ffKF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录