题目描述

Csh被老妈关在家里做分数计算题,但显然他不愿意坐这么多复杂的计算。况且在家门口还有Xxq在等着他去一起看电影。为了尽快地能去陪Xxq看电影,他把剩下的计算题交给了你,你能帮他解决问题吗?

输入输出格式

输入格式:

输入一行,为一个分数计算式。计算式中只包含数字、’+’、’-‘、’/’。其中’/’为分数线,分数线左边为分子,右边为分母。输入数据保证不会出现繁分数。如果输入计算式的第一项为正,不会有前缀’+’号;若为负,会有前缀’-‘号。

所有整数均以分数形式出现。

输出格式:

输出一行,为最后的计算结果(用最简分数或整数表示)

输入输出样例

输入样例#1: 复制

2/1+1/3-1/4
输出样例#1: 复制

25/12

说明

对于所有测试点,输入计算式长度在100以内,分子、分母在1000以内。

思路:模拟。

错因:分母通分的时候,直接乘,爆掉了long long,应该改成最小公倍数。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int tot;
long long ans=,ans1;
string s;
struct nond{
int first,second,pos;
}v[];
int gcd(long long x,long long y){
return x==?y:gcd(y%x,x);
}
int main(){
cin>>s;
if(s[]!='-') s='+'+s;
int len=s.length(),sum=;
for(int i=;i<len;i++){
if(s[i]>=''&&s[i]<='') sum*=,sum+=s[i]-'';
else{
if(s[i]=='/') v[tot].first=sum;
else{
v[tot].second=sum;
if(s[i]=='+') v[++tot].pos=;
else if(s[i]=='-') v[++tot].pos=-;
}sum=;
}
}
v[tot].second=sum;
ans=v[].second;
for(int i=;i<=tot;i++)
ans=(v[i].second*ans)/gcd(v[i].second,ans);
for(int i=;i<=tot;i++){
int GCD=gcd(v[i].first,v[i].second);
v[i].first/=GCD;v[i].second/=GCD;
v[i].first*=ans/v[i].second;
ans1+=v[i].pos*v[i].first;
}
if(ans/gcd(ans,abs(ans1))==) cout<<ans1/gcd(abs(ans1),ans);
else cout<<ans1/gcd(abs(ans1),ans)<<"/"<<ans/gcd(abs(ans1),ans);
}

洛谷 P1572 计算分数的更多相关文章

  1. 洛谷——P1572 计算分数

    P1572 计算分数 模拟+字符串 注意有两位数的情况以及负数情况 #include<bits/stdc++.h> using namespace std; string s; ],b[] ...

  2. 洛谷P1313 计算系数【快速幂+dp】

    P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...

  3. 洛谷 P1313 计算系数 解题报告

    P1313 计算系数 题目描述 给定一个多项式\((by+ax)^k\),请求出多项式展开后\(x^n*y^m\)项的系数. 输入输出格式 输入格式: 共一行,包含5个整数,分别为\(a,b,k,n, ...

  4. 洛谷P1313 计算系数

    P1313 计算系数 题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别 ...

  5. 洛谷 P1727 计算π

    P1727 计算π 题目背景 <爱与愁的故事第二弹·compute>第一章. 题目描述 中秋至,博饼声铿锵不断.爱与愁大神兴致勃勃地到学校博饼,结果抱回家的只有一秀二举.爱与愁大神十分生气 ...

  6. 洛谷 P1313 计算系数 Label:杨辉三角形 多项式计算

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  7. 【数论】洛谷P1313计算系数

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  8. 【洛谷P1313 计算系数】

    题目连接 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio&g ...

  9. [NOIP2011] 洛谷P1313 计算系数

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

随机推荐

  1. CSS布局总结(一)

    前言:今天是学校为期六周的实训第一天,实训课感觉很水,第一天讲的竟然是HTML...实训老师丢了一个静态页面给我们做.感觉很久没写过这种东西,突然觉得自己的基本功很渣.布局这方面感觉需要总结一下,然后 ...

  2. [luogu2151 SDOI2009] HH去散步 (矩阵快速幂)

    传送门 题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH ...

  3. 前后端交互&交互接口

    前后端数据交互之数据接口 废话就不多说了,我们都知道,前端通常会通过后台提供的接口来获取数据来完成前端页面的渲染. 1.前端通过接口调用后台返回的数据 <!DOCTYPE html PUBLIC ...

  4. php安装redis扩展 windows

    官方php_redis.dll 找了很久,感谢热心的网友,这是php官方的 php_redis.dll http://windows.php.net/downloads/pecl/releases/r ...

  5. shell 脚本 helloworld

    一.Hello World 脚本代码 #!/bin/sh echo "hello world" /bin/pwd 二.分析脚本 第 1 行:shell 脚本的固定写法 第 2 行: ...

  6. HDU 4253 Two Famous Companies

    Two Famous Companies Time Limit: 15000ms Memory Limit: 32768KB This problem will be judged on HDU. O ...

  7. MySQL 创建表时,设置时间字段自己主动插入当前时间

    MySQL 创建表时,设置时间字段自己主动插入当前时间 DROP TABLE IF EXISTS `CONTENT`; CREATE TABLE `CONTENT` ( `ID` char(20) N ...

  8. php抽奖、随机广告算法

    我们先完毕后台PHP的流程,PHP的主要工作是负责配置奖项及相应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP依据配置的概率,通过概率算法给出中奖结果,同一时候 ...

  9. HDU 4828 (卡特兰数+逆元)

    HDU 4828 Grids 思路:能够转化为卡特兰数,先把前n个人标为0,后n个人标为1.然后去全排列,全排列的数列,假设每一个1的前面相应的0大于等于1,那么就是满足的序列.假设把0看成入栈,1看 ...

  10. 夜&#183; 启程

    有写博客的念头,还是在去年的时候. 那天早上我非常兴奋,也非常忐忑.由于我立即要去JD面试.JD大家都知道的,对我这样的没见过世面的人来说.这就是个高高在上殿堂. 结果我的满腔热血.被一张面试题卷给浇 ...