博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
L1-009. N个数求和
阅读量:6479 次
发布时间:2019-06-23

本文共 1182 字,大约阅读时间需要 3 分钟。

 

原来写的找了好久还是有一个测试点没过, 虽说是道水题,但是今天一遍就过了还是挺高兴的。

送你机组数据

5

2/5 4/15 1/30 -2/60 8/3
2
4/3 2/3
3
1/3 -1/6 1/8
1
-60/12
2
-1/2 1/3
1
0/1021
2
0/1 0/12
1
-1/1
1
6/6

#********************************************************************************************

#include <stdio.h>

#include <string.h>
#include <iostream>
#include <math.h>
#define maxn 110
using namespace std;
typedef long long int ll;

 

ll n, a, b, sumx, sumy;

ll lcm(ll x, ll y){
if(x == y)
  return 1;
  else
  return y == 0 ? x : (lcm(y, x%y));
}
void add(ll x, ll y){

      ll temp = lcm(y, sumy);
      temp = y / temp * sumy;
      x *= temp / y;
      sumx *= temp / sumy;
      sumx += x;
      sumy = temp;
      if(sumx < 0){
      ll te = lcm(-sumx , sumy);
      sumx /= te;
      sumy /= te;
}else{
      ll te = lcm(sumx , sumy);
      sumx /= te;
      sumy /= te;
         }
     return ;
}
int main(){

 

scanf("%d", &n);
sumx = 0;
sumy = 1;
for(int i=0; i<n; ++i){
     scanf("%lld/%lld", &a, &b);
     add(a, b);
}

 

if(sumx == 0){

   cout << "0" << endl;
}else{
  int inter = sumx / sumy;
  if(inter == 0){
  cout << sumx << "/" << sumy << endl;
}else{
  cout << inter;
  if(sumx - inter * sumy > 0){
     cout << " " << sumx - inter * sumy << "/" << sumy;
  }
  cout << endl;
}
}

 

return 0;

}

转载于:https://www.cnblogs.com/zzusunjs/p/5665943.html

你可能感兴趣的文章
WINFORM WPF字体颜色相互转换
查看>>
能力不是仅靠原始积累(三)
查看>>
实战:使用终端服务网关访问终端服务
查看>>
彻底学会使用epoll(一)——ET模式实现分析
查看>>
脱离标准文档流(2)---定位
查看>>
IO流之字符流
查看>>
集合异常之List接口
查看>>
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>
ZOJ 3777 Problem Arrangement
查看>>
Callable和Future
查看>>
少用数字来作为参数标识含义
查看>>
ScrollView中嵌套ListView
查看>>
Algs4-2.3.1如何切分数组
查看>>
观察者模式
查看>>
在properties.xml中定义变量,在application.xml中取值问题
查看>>
js 数组
查看>>
cell reuse & disposebag
查看>>