博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu4180 数论
阅读量:5132 次
发布时间:2019-06-13

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

一个分数假如 3/5=1/(1+2/3)=1/(1+1/(1+1/2));

当分子出现1的时候,只要让分母减一。

#include 
#include
#include
#define EX(a, b) (a = a ^ b, b = a ^ b, a = a ^ b)using namespace std;int gcd(int a, int b){ return (b == 0) ? a : gcd(b, a % b);}class fenshu{ public: int x, y; fenshu friend operator + (fenshu n, fenshu m) { m.x *= n.y; n.x *= m.y; m.y *= n.y; n.y = m.y; n.x += m.x; int k = gcd(n.x, n.y); n.x /= k; n.y /= k; return n; } fenshu friend operator / (int k, fenshu n) { EX(n.x, n.y); n.x *= k; return n; }};fenshu ans_get(fenshu now){ if(now.x <= 1) { --now.y; return now; } else { EX(now.x, now.y); //小数倒置 fenshu s; s.x = now.x / now.y; s.y = 1; //分离出来的整数 now.x = now.x % now.y; return 1 / (s + ans_get(now)); }//继续分离}void solve(){ int T; scanf("%d", &T); while(T--) { fenshu now, s; scanf("%d/%d", &now.x, &now.y); now = ans_get(now); printf("%d/%d\n", now.x, now.y); }}int main(){ solve(); return 0;}

 

转载于:https://www.cnblogs.com/sweat123/p/4764558.html

你可能感兴趣的文章
Java泛型的基本使用
查看>>
1076 Wifi密码 (15 分)
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
【转载】Linux screen 命令详解
查看>>
background-clip,background-origin
查看>>
Android 高级UI设计笔记12:ImageSwitcher图片切换器
查看>>
【Linux】ping命令详解
查看>>
对团队成员公开感谢博客
查看>>
java学习第三天
查看>>
python目录
查看>>
django+uwsgi+nginx+sqlite3部署+screen
查看>>
浅谈项目需求变更管理
查看>>
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>