http://acm.nyist.net/JudgeOnline/problem.php?pid=111

简单模拟:

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int gcd(int a,int b)
{
if(a<b)return gcd(b,a);
if(b==0)return a;
return gcd(b,a%b);
}
int lcm(int a,int b)
{
return a*b/gcd(a,b);
}
int main()
{
string s;
int fz1,fm1,fz2,fm2;
char ch;
while(cin>>s)
{
fz1=s[0]-'0';
fm1=s[2]-'0';
fz2=s[4]-'0';
fm2=s[6]-'0';
ch=s[3];
int fm=lcm(fm1,fm2);
fz1=fz1*(fm/fm1);
fz2=fz2*(fm/fm2);
int fz;
if(ch=='+'){
fz=fz1+fz2;
if(fz%fm==0){cout<<fz/fm<<endl;continue;}// 2/1或者4/2这种情况应该直接输出
int tmp=gcd(fz,fm);
fz=fz/tmp;
fm=fm/tmp;
if(fz==fm)cout<<1<<endl;
else
cout<<fz<<"/"<<fm<<endl;
}
else {
fz=fz1-fz2;
if(fz%fm==0){cout<<fz/fm<<endl;continue;}
if(fz==0)cout<<0<<endl;
else {
int tmp;
if(fz<0)
tmp=gcd(-fz,fm);
else tmp=gcd(fz,fm);
fz=fz/tmp;
fm=fm/tmp;
if(fz==fm)cout<<1<<endl; // 1/1这种情况应该输出1
else
cout<<fz<<"/"<<fm<<endl;
}
} }
return 0;
}

南阳理工ACM-OJ 分数加减法 最大公约数的使用的更多相关文章

  1. 矩形嵌套 南阳理工ACM

    描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度).例如(1, ...

  2. 单调递增最长子序列(南阳理工ACM)

    描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串 ...

  3. 南阳理工ACM 括号匹配问题,并求出使得括号能够匹配需要新增的最小括号数(括号匹配(二))

    描述 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起 ...

  4. 南阳理工ACM Skiing问题

    描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长底 ...

  5. 南阳理工ACM——106背包问题

    描述: 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10):如果给你一个背包它能容纳的重量为m(10<=m<=20),你 ...

  6. 2015,3,10 2(南阳理工ACM)

    描述有一个整型偶数n(2<= n <=10000),你要做的是:先把1到n中的所有奇数从小到大输出,再把所有的偶数从小到大输出.   输入 第一行有一个整数i(2<=i<30) ...

  7. 2015,3,10 1(南阳理工ACM)

    描述输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符.   输入 第一行输入一个数N,表示有N组测试数据.后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成, ...

  8. ACM 分数加减法

    分数加减法 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 编写一个C程序,实现两个分数的加减法   输入 输入包含多行数据 每行数据是一个字符串,格式是" ...

  9. 南阳理工 题目9:posters(离散化+线段树)

    posters 时间限制:1000 ms  |  内存限制:65535 KB 难度:6   描述 The citizens of Bytetown, AB, could not stand that ...

随机推荐

  1. Java线程(学习整理)--3--简单的死锁例子

    1.线程死锁的概念: 简单地理解下吧! 我们都知道,线程在执行的过程中是占着CPU的资源的,当多个线程都需要一个被锁住的条件才能结束的时候,死锁就产生了! 还有一个经典的死锁现象: 经典的“哲学家就餐 ...

  2. slf4j与log4j

    推荐使用SLF4J(Simple Logging Facade for Java)作为日志的api,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统. ...

  3. FlightGear 视角控制

    Flightgear提供了非常灵活的模块化功能 这里就简要记录一下视角切换功能 首先,需要了解一下Flightgear中的property tree的主要内容,这里暂略. http://wiki.fl ...

  4. 自构BeanHandler(用BeansUtils)

    class BeanHandler<T> implements ResultSetHandler<T>{ private Class<T> clazz; publi ...

  5. Canvas实现文字粒子化,并且绕轴旋转(初号机)

    写下来发现,程序在细节上处理的很差,比如旋转的时候,在终点处有明显的撞墙感觉,以及小部分粒子存在精度差异,导致撞击后不与整体平衡. 注释全在代码中了,就不多说了,另外感觉写的旋转的规则有点怪,后续再调 ...

  6. thinkphp 中js 实现刷新

    <input name="Button5" value="返回" id="Button5" style="width:56p ...

  7. 技术大牛面试 http://www.itmian4.com/forum.php?mod=viewthread&tid=3824

    不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这些牛人,NOI金牌,开源社区名人,三年级开始写Basic...在跪拜之余我们不禁要想,和这些牛人比,作为绝大部分技 ...

  8. windows下搭建PHP环境

    1.Apache 下载地址:http://httpd.apache.org/download.cgi 下载之后进入CMD,/Apache/bin/httpd.exe -k install 进行安装 提 ...

  9. python Hbase Thrift pycharm 及引入包

    cp -r hbase/ /usr/lib/python2.7/site-packages/ 官方示例子http://code.google.com/p/hbase-thrift/source/bro ...

  10. cut 命令

    今天看到cut拿来取参数也是很方便的. cut -d = -f 2 -d表示分隔符 -f参数是分隔符算第几个参数