博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
南阳oj 分数加减法
阅读量:4500 次
发布时间:2019-06-08

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

#include<iostream>

#include<stdio.h>
using namespace std;
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int main ()
{
int a,b,c,d;
char ch1,ch2,ch3;
while(scanf("%d%c%d%c%d%c%d",&a,&ch1,&b,&ch2,&c,&ch3,&d)!=EOF)
{
if(a==0 && c==0)
{
cout<<0<<endl;
}
else
{
int x,y;
int flag=1;
int m,n;
int g;
m=b*d;
if(ch2=='+')
n=a*d+b*c;
else if(ch2=='-')
n=a*d-b*c;
if(n==0)
{
cout<<0<<endl;
continue;
}
if(n<0)
{
flag=0;
n=-n;
}
g=gcd(m,n);
x=n/g;
y=m/g;
if(flag==0)
cout<<"-";
if(y==1)
{
cout<<x<<endl;
}
else
cout<<x<<"/"<<y<<endl;
}
}
return 0;
}

输入的时候,两个除号“/”也要用两个字符变量来表示

对多种情况的判断:

输入两个分子都为零时,结果为零

另外gcd()函数用来求分子分母的最大公因数,然后将分子分母化为最简形式

分母为1时,只输出分子

 

转载于:https://www.cnblogs.com/huanya/p/9376887.html

你可能感兴趣的文章
小程序:小程序能力
查看>>
P1578 奶牛浴场 有障碍点的最大子矩形
查看>>
OpenCV学习:体验ImageWatch
查看>>
socket_循环接收消息
查看>>
I/O基础之概念
查看>>
各种算法的优缺点:
查看>>
poj 2513 Colored Sticks 字典树
查看>>
BZOJ 1266: [AHOI2006]上学路线route Floyd_最小割
查看>>
Softmax函数
查看>>
.NET 向SQL里写入非Text类型
查看>>
HAOI2006 受欢迎的牛
查看>>
【代码备份】pocs.m
查看>>
(转)ApplicationDomain
查看>>
form注册表单圆角 demo
查看>>
python 学习之 函数参数和内置函数
查看>>
leetcode 1108
查看>>
PHP底层的运行机制与原理
查看>>
ERP笔记3-数据库的版本化
查看>>
编译原理的思维导图
查看>>
关于Spring boot 中application.yml配置文件没有小绿叶图标的问题
查看>>