zoukankan      html  css  js  c++  java
  • 2019.11.7

    12:分数求和

    总时间限制: 1000ms  内存限制: 65536kB
    描述

    输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。

    如:5/6、10/3均是最简形式,而3/6需要化简为1/2, 3/1需要化简为3。

    分子和分母均不为0,也不为负数。

    输入
    第一行是一个整数n,表示分数个数,1 <= n <= 10;
    接下来n行,每行一个分数,用"p/q"的形式表示,不含空格,p,q均不超过10。
    输出
    输出只有一行,即最终结果的最简形式。若为分数,用"p/q"的形式表示。
    样例输入: 2
          1/2
          1/3
    样例输出: 5/6
    #include<cstdio>
    #include<cctype>
    using namespace std;
    long long gcd(long long a,long long b)
    {
        return b == 0  ? a : gcd(b,a % b);
    }
    int read()
    {
        int x = 0;
        int f = 1;
        char ch = getchar();
        for(;!isdigit(ch);ch =getchar())
            if(ch == '-')
                f = -1;
        for(;isdigit(ch);ch = getchar())
            x = x * 10 + (ch ^ 48);
        return x * f;
    }
    int n, a[20], b[20];
    long long sum = 1,ans = 0;
    int main()
    {
        n = read();
        for(int  i=1; i<=n; i++)
        {
            a[i] = read(),b[i] = read();
            sum *= b[i];
        }
        for(int i = 1;i <= n;i++)
            ans += (sum / b[i]) * a[i];
        long long g = gcd(ans,sum);
        ans /= g,sum /= g;
        if(sum > 1)
            printf("%lld/%lld",ans,sum);
        if(sum == 1)
            printf("%lld",ans);
    }

    没有注意到原题中画线部分。。。

    根据给定的数据,计算合法速度的平均速度。如果你判断出是探测器坏了,则输出“broken”(不含引号)。
    【输入】
    第一行有3 个整数A, B, C(, ),分别为最低限速、最高限速和探测到的数据个数。后面一行有C 个要分析有数据,数据之间有一个空格隔开。
    【输入样例1】
    1 50 10
    42 43 44 45 46 47 48 49 50 51
    【输出样例1】
    46.0000
    【输入样例2】
    1 50 5
    42 46 48 50 52
    【输出样例2】
    broken
    【数据规模和约定】
    100%的数据中, , 。
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int a, b, c;
    int sum = 0, tot = 0, wg=0;
    int s[55];
    double ans;
    int main()
    {
        //freopen("radar.in","r",stdin);
        //freopen("radar.out","w",stdout);
        scanf("%d%d%d", &a, &b, &c);
        for(int i=1;i<=c;i++)
        {
            scanf("%d", &s[i]);
            if(s[i]<a || s[i]>b) wg++;
        }
        if(wg*1.0/c>0.1) printf("broken");
        else
        {
            for(int i=1; i<=c; i++)
            {
                if(s[i]>=a && s[i]<=b)
                {
                    tot++;
                    sum+=s[i];
                }
            }
            ans = sum*1.0/tot;
            printf("%.4lf", ans);
        }
        return 0;
    }
  • 相关阅读:
    lodash函数库----difference
    lodash 函数库-
    lodash函数库 -- chunk
    document.selection.createRange方法----获取用户选择文本
    复制到剪切板 clipboard
    下载图片到本地
    H5(11表格案例:小说排行榜)
    H5(10HTML标签学习)
    H5(09综合案例圣诞老人介绍)
    H5(08常用标签02,绝对,相对路径)
  • 原文地址:https://www.cnblogs.com/orange-233/p/11815392.html
Copyright © 2011-2022 走看看