zoukankan      html  css  js  c++  java
  • 结构-05. 有理数均值

    结构-05. 有理数均值(20)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    乔林(清华大学)

    本题要求编写程序,计算N个有理数的平均值。

    输入格式:

    输入第1行给出正整数N(<=100);第2行中按照“a1/b1 a2/b2 ……”的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。

    输出格式:

    在一行中按照“a/b”的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。

    输入样例1:
    4
    1/2 1/6 3/6 -5/10
    
    输出样例1:
    1/6
    
    输入样例2:
    2
    4/3 2/3
    
    输出样例2:
    1
     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<stdlib.h>
     4 #include<string.h>
     5 int main()
     6 {
     7     struct rational
     8     {
     9         int a;
    10         int b;
    11     };
    12     rational x, r[110];
    13     int i, n;
    14     scanf("%d", &n);
    15     for(i = 0; i < n; i++)
    16     {
    17         scanf("%d/%d", &r[i].a, &r[i].b);
    18     }
    19     x.a = 0;
    20     x.b = 1;
    21     for(i = 0; i < n; i++)
    22     {
    23         x.a = x.a * r[i].b + x.b * r[i].a;
    24         x.b *= r[i].b;
    25     }
    26     x.b *= n;
    27     int temp, h, l;
    28     h = x.a > x.b ? x.a : x.b;
    29     l = x.a < x.b ? x.a : x.b;
    30     while(l)
    31     {
    32         temp = h % l;
    33         h = l;
    34         l = temp;
    35     }
    36     if(h != 0)
    37     {
    38         x.a /= h;
    39         x.b /= h;
    40     }
    41     if(x.a == 0)
    42     printf("%d
    ", x.a);
    43   else if(x.b == 1)
    44     printf("%d
    ", x.a);
    45   else
    46     printf("%d/%d
    ", x.a, x.b);
    47   return 0;
    48     return 0;
    49 }
  • 相关阅读:
    HyperLogLog
    Bitmaps
    正向代理与反向代理的概念
    性能优化——应用服务器性能优化
    Memcached的优点
    前端基础之BOM和DOM
    性能优化——Web前端性能优化
    亡命逃窜---三维搜索
    Sum It Up -- 深搜 ---较难
    排序---对二维数组的排序
  • 原文地址:https://www.cnblogs.com/yomman/p/4248256.html
Copyright © 2011-2022 走看看