题目:

裁判测试程序样例:

#include <iostream>
using namespace std;/* 请在这里填写答案 */int main(void)
{Fraction f1;Fraction f2;cin >> f1 >> f2;cout << f1+f2 << endl;cout << (double)(f1+f2) << endl;cout << f1-f2 << endl;cout << f1*f2 << endl;cout << f2/f1 << endl;double d;cin >> d;Fraction f((long long)(d*1e16), 1e16);cout << f << endl;f=0.5;cout << f << endl;Fraction*p = &f1;f1=*p;cout << f1 << endl;cin >> f1;f1 = f1*Fraction(2.0);cout << f1 << endl;
}

输入样例:

1/2
1/3
0.5
1/4

输出样例:

5/6
0.833333
1/6
1/6
2/3
1/2
1/2
1/2
1/2

答案:

class Fraction
{public:Fraction(){}Fraction(double m){this->fenzi = (long long )m * 10;this->fenmu = 10;huajian(*this);}Fraction(long long x, double y){this->fenzi = x;this->fenmu = (long long)y;huajian(*this);}operator double(){return (double)(1.0*this->fenzi / this->fenmu);}friend Fraction& huajian(Fraction& m);friend istream& operator>>(istream& in, Fraction& f);friend Fraction operator+(Fraction& x, Fraction& y);friend ostream& operator<<(ostream& out, Fraction m);friend Fraction operator-(Fraction& x, Fraction& y);friend Fraction operator*(Fraction& x, Fraction y);friend Fraction operator/(Fraction& x, Fraction& y);Fraction& operator=(Fraction x){fenzi = x.fenzi;fenmu = x.fenmu;return *this;}Fraction& operator=(double x){Fraction temp;temp.fenzi = (long long)(x * 10.0);temp.fenmu = 10;huajian(temp);*this = temp;return *this;}private:long long  fenzi;long long  fenmu;
};
Fraction& huajian(Fraction& m)
{long long  c;long long max;long long a = m.fenzi;long long b = m.fenmu;if (a > b){c = a % b;while (c != 0){a = b;b = c;c = a % b;}max = b;}else if(a<b){c = b % a;while (c != 0){b = a;a = c;c = b % a;}max = a;}else max=a;m.fenmu /= max;m.fenzi /= max;return m;
}
istream& operator>>(istream& in, Fraction& f)
{char c;in >> f.fenzi;in >>  c;in >> f.fenmu;return in;
}
ostream& operator<<(ostream& out, Fraction m)
{out << m.fenzi << '/' << m.fenmu;return out;
}
Fraction operator+(Fraction& x, Fraction& y)
{Fraction temp;temp.fenzi = x.fenzi * y.fenmu + y.fenzi * x.fenmu;temp.fenmu = x.fenmu * y.fenmu;huajian(temp);return temp;
}
Fraction operator-(Fraction& x, Fraction& y)
{Fraction temp;temp.fenzi = x.fenzi * y.fenmu - x.fenmu * y.fenzi;temp.fenmu = x.fenmu * y.fenmu;huajian(temp);return temp;
}
Fraction operator*(Fraction& x, Fraction y)
{Fraction temp;temp.fenzi = x.fenzi * y.fenzi;temp.fenmu = x.fenmu * y.fenmu;huajian(temp);return temp;
}
Fraction operator/(Fraction& x, Fraction& y)
{Fraction temp;temp.fenzi = x.fenzi * y.fenmu;temp.fenmu = x.fenmu * y.fenzi;huajian(temp);return temp;
}

结果

PTA 6-6 分数 分数 10 作者 翁恺 单位 浙江大学相关推荐

  1. 整除光棍 分数 20作者 翁恺单位 浙江大学

    这里所谓的"光棍",并不是指单身汪啦~ 说的是全部由1组成的数字,比如1.11.111.1111等.传说任何一个光棍都能被一个不以5结尾的奇数整除.比如,111111就可以被13整 ...

  2. L2-007 家庭房产分数 25作者 陈越单位 浙江大学

    给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产: 编号 父 ...

  3. 7-101 个位数统计分数 15作者 陈越单位 浙江大学

    给定一个 k 位整数 N=dk−1​10k−1+⋯+d1​101+d0​ (0≤di​≤9, i=0,⋯,k−1, dk−1​>0),请编写程序统计每种不同的个位数字出现的次数.例如:给定 N= ...

  4. 7-73 一帮一分数 15作者 陈越单位 浙江大学

    "一帮一学习小组"是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当 ...

  5. 抢红包 作者 陈越单位 浙江大学

    没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编 ...

  6. L2-003 月饼 作者 陈越单位 浙江大学

    月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼.现给定所有种类月饼的库存量.总售价.以及市场的最大需求量,请你计算可以获得的最大收益是多少. 注意:销售时允许取出一部分库存.样 ...

  7. 最长对称子串 作者 陈越单位 浙江大学

    对给定的字符串,本题要求你输出最长对称子串的长度.例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11. 输入格式: 输入在一 ...

  8. 2-1若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于____。(1分)A.p++B.x++C.*(p++)D.x++作者往年试卷单位

    2-1 若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于____. (1分) A. p++ B. x++ C. *(p++) D. &x++ 作者 往年试卷 单位 浙江大学 ...

  9. 教师节浙大颁出百万大奖,国内编程教育引路人翁恺获殊荣

    "师者,所以传道受业解惑也." 9月7日下午,浙江大学庆祝第34个教师节暨先进表彰会在紫金港校区举行,会上,浙江大学计算机学院的一线教师翁恺获颁"浙江大学永平杰出教学贡献 ...

最新文章

  1. 2020技术趋势报告-中文版
  2. openresty开发系列33--openresty执行流程之2重写赋值阶段
  3. NYOJ 630 Problem of IP
  4. 软件需求与分析课堂讨论
  5. FPGA实现任意分频 为所欲为——教你什么才是真正的任意分频
  6. 【算法学习】将MSRCR中的模糊处理由FFT修改为时域纯高斯模糊
  7. jaxb实现java对象与xml之间转换_JAXB实现XML与Java对象转换
  8. python:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
  9. 锐起无盘服务器优化,(锐起无盘系统制作系统优化教程.doc
  10. 狗头人与地下世界冒险模式通关记录 [20171224]
  11. cad图纸打印出来更高效的方法介绍
  12. 编译出现错误,想知道为什么错误
  13. TC358746AXBG/748XBG 桥接器说明
  14. 【LLC原理与设计】仙童半导体 LLC原理与设计
  15. 石油管道巡线案例:SABER无人机高原2500米轻松作业
  16. 网站项目成功管理实践(刘振飞)
  17. c primer plus第六版 第七章
  18. 定了,又一个网盘宣布不限速了
  19. Python 自动化发送钉钉消息
  20. 嵌入式linux sip电话开发,基于嵌入式Linux和MiniGUI的SIP电话设计

热门文章

  1. C语言计算两日期间隔天数
  2. 解决cookiecutter在ubuntu上出现的问题“No module named functools_lru_cache”
  3. 先知安全技术社区原创文章奖励计划
  4. 富士康的盈利秒杀99%的A股公司:3星|《三联生活周刊》2018年10期
  5. js求圆的周长和面积
  6. R语言实现拟合神经网络预测和结果可视化
  7. 周末玩OPENWRT--多WAN PPTP
  8. Maven创建三种项目类型:pom war jar
  9. easelJS 初始入门 (creatjs)
  10. 《期权、期货及其他衍生产品》读书笔记(第一章:导论)