奇妙的RE了……
  • 板块题目总版
  • 楼主Hua_Cheng
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/9 11:52
  • 上次更新2024/8/9 13:47:02
查看原帖
奇妙的RE了……
1416320
Hua_Cheng楼主2024/8/9 11:52

分数求和

问题描述
输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。 如:5/6、10/3均是最简形式,而3/6需要化简为1/2。
分子和分母均不为0 ,也不为负数。

输入格式
第一行是一个整数 n,表示分数个数, 1≤n≤10 ;接下来n 行,每行一个分数,用p/q 的形式表示,不含空格p,q 均不超过10。

输出格式
输出只有一行,即最终结果的最简形式。若为分数,用 p/q 的形式表示。

【代码】

#include<bits/stdc++.h>
using namespace std;
struct t{
    int x;
    int y;
}a[100];
int main(){
    int n; cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> a[i].x >> a[i].y;
    }
    int hc = a[1].x, xl = a[1].y;
    for(int i = 2; i <= n; i++){
        int sum = xl*a[i].y/__gcd(xl, a[i].y);
        hc = hc*sum/xl+a[i].x*sum/a[i].y;
        xl = sum;
    }
    if(hc%xl == 0) cout << hc/xl;
    else cout << hc/__gcd(hc,xl) << '/' << xl/__gcd(hc,xl);
    return 0;
}

问: 哪位大佬告诉我怎么RE了……

2024/8/9 11:52
加载中...