zoukankan      html  css  js  c++  java
  • PAT Rational Sum

    Rational Sum (20)

    时间限制 1000 ms 内存限制 65536 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)

    题目描述

    Given N rational numbers in the form "numerator/denominator", you are supposed to calculate their sum.

    输入描述:

    Each input file contains one test case. Each case starts with a positive integer N (<=100), followed in the next line N rational numbers "a1/b1 a2/b2 ..." where all the numerators and denominators are in the range of "long int".  If there is a negative number, then the sign must appear in front of the numerator.


    输出描述:

    For each test case, output the sum in the simplest form "integer numerator/denominator" where "integer" is the integer part of the sum, "numerator" < "denominator", and the numerator and the denominator have no common factor.  You must output only the fractional part if the integer part is 0.

    输入例子:

    5
    2/5 4/15 1/30 -2/60 8/3

    输出例子:

    3 1/3

    #include<iostream>
    #include<cstring>
    #include<string>
    using namespace std;
    
    long long gcd(long long x,long long y){
        return y?gcd(y,x%y):x;
    }
    
    long long lcm(long long x,long long y){
        return  x/gcd(x,y)*y;
    }
    
    char s[111];
    
    int main(){
        long long a=0,b=1; //a / b
        int n;
        cin >> n;
        while(n--){
            cin >> s;
            char *t = strstr(s,"/");
            if(t) *t = ' ';
             
             // a/b + c/d
            long long c,d;
            sscanf(s,"%lld %lld",&c,&d);
            long long aa = a*d + b*c;
            long long bb = b*d;
            long long g = gcd((aa<0)?(-aa):aa,bb);
            a = aa/g;
            b = bb/g;
        }
        long long x = a/b,y = a%b;
        if(y == 0) printf("%lld
    ",x);
        else{
            if(x) printf("%lld ",x);
            printf("%lld/%lld
    ",y,b);
        }
        return 0;
    } 
  • 相关阅读:
    curl -L 跟随跳转
    Http报头Accept与Content-Type的区别
    curl 发送json请求
    IntelliJ 中类似于Eclipse ctrl+o的是ctrl+F12
    Spring AOP
    Windows下Nginx配置SSL实现Https访问(包含证书生成)
    @Retention n. 保留
    Exchanger使用
    Semaphore使用
    UVA12493
  • 原文地址:https://www.cnblogs.com/cunyusup/p/10663460.html
Copyright © 2011-2022 走看看