nyoj 111分数加减法
来源:互联网 发布:地方财政收入来源 知乎 编辑:程序博客网 时间:2024/05/23 01:25
- 输入
- 输入包含多行数据
每行数据是一个字符串,格式是"a/boc/d"。
其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。
数据以EOF结束
输入数据保证合法 - 输出
- 对于输入数据的每一行输出两个分数的运算结果。
注意结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数 - 样例输入
1/8+3/81/4-1/21/3-1/3
- 样例输出
1/2-1/4
0
这道题就是纯粹的数学问题,掌握好对最小公倍数、最大公约数的应用就可以了,
不过对于输出要注意几点,结果为负数输出负号,以及结果为一分之几时的输出
#include<stdio.h>int fun(int n,int m){ int t,l; if(n<m) { l=n; n=m; m=l; } while(m) { t=n%m; n=m; m=t; } return n; //最大公约}int main(){ int x1,x2,y1,y2; char a,b,c; while(~scanf("%d%c%d%c%d%c%d",&x1,&b,&y1,&a,&x2,&c,&y2)) { int n,m,t,k,y; y=fun(y1,y2); n=y1*y2/y;//n为分母 if(a=='+') m=n/y1*x1+n/y2*x2;//m为分子 else m=n/y1*x1-n/y2*x2; if(m<0) { printf("-"); m=-m; } if(m==0) { printf("0\n"); continue; } k=fun(n,m);//分子分母最大公约数 int f=m/k; int g=n/k; if(g==1) printf("%d\n",f); else printf("%d/%d\n",f,g); } return 0;}
0 0
- NYOJ 111 分数加减法
- NYOJ,111,分数加减法
- NYOJ 111 分数加减法
- NYOJ-111-分数加减法
- NYOJ-111 分数加减法
- NYOJ 111 分数加减法
- nyoj-111-分数加减法
- nyoj 111 分数加减法
- nyoj 111 分数加减法
- nyoj 111 分数加减法
- NYOJ--111 分数加减法
- NYOJ 111 分数加减法
- NYOJ-111分数加减法
- 【NYOJ】[111]分数加减法
- nyoj 111分数加减法
- NYOJ-111 分数加减法
- NYOJ-111 分数加减法
- NYOJ 111 分数加减法
- sas:因子分析实例
- poj2955(区间dp)
- 文件 工资类
- Javascript中的字符串连接
- Ipython快捷键大全
- nyoj 111分数加减法
- CentOS6.5安装JDK
- ROS_Kinetic_12 ROS程序基础Eclipse_C++(三)usb camera
- Java学习笔记之适配器模式
- java 中null的判断
- mysql中length字符长度函数使用方法
- Service实时向Activity传递数据案例
- There is no Action mapped for namespace [/] and action name [spropertyvalue] associated with context
- 关于tools:context=".MainActivity"的解释