分数

Description

上完物理实验课,紧接着就上数学课,课上大名鼎鼎的Z老师按照惯例先给大家讲一个故事,今天的第一堂课当然是讲他的得意弟子青年数学家恽之玮勇夺国际数学奥林匹克(International Mathematical Olympiad,简称IMO)金牌的故事,故事讲完后,Z老师组织大家讨论了一道当年恽之玮学长遇到的难题,问题并不复杂:给你一个最简真分数,找出另一个分子分母都在1到32767之间的最简真分数,使它与给定的分数最为接近,这里最为接近指的是两数之间的差最小,如5/6就比3/4更接近4/5,因为5/6与4/5相差不到0.4,而3/4与4/5相差了0.5。所谓最简真分数也就是说分子和分母的最大公约数为1,并且分子小于分母。

Input

输入数据仅有一行包含两个用空格隔开的正整数N和D,其中1≤N<D≤32767,分别是给你的分数的分子和分母。

Output

输出数据仅有一行包含两个正整数,分别是你求出的最接近的真分数的分子和分母,并且分子分母都在1到32767之间。如果满足条件的真分数不止一个,输出其中数值最小的那个。输出时两数之间严格用一个空格隔开,行末没有多余的空格。

样例解释:21845/32767=0.666676839503... ≈0.666666... = 2/3。
100%的数据满足:1≤N<D≤32767
思路:
为了减小时间复杂度,分母从2递增至32767,相对应的分子=N/D*分母
①注意要判断分子,分母是否为最简真分数
②输出分子,分母均为整数,则对分子进行四舍五入,注意:采用分子+0.5后取整的方式会因为精度问题产生误差,不推荐也不建议使用
#include<stdio.h>
#include<math.h>
int main()
{int i,a,b,x,y,m,n,q;double p,min=1;scanf("%d%d",&a,&b);for(i=2;i<=32767;i++){p=(double)i*a/b;q=(int)p;if(fabs(p-q)<=1e-6)x=q-1;else if(p-q<=q+1-p)x=q;elsex=q+1;                //四舍五入,加0.5会出现精度问题y=i;if(fabs((double)x/y-(double)a/b)<min){min=fabs((double)x/y-(double)a/b);m=x;n=y;}}for(i=2;i<=32767;i++)if(m%i==0&&n%i==0){m/=i;n/=i;}printf("%d %d",m,n);return 0;
}

AOJ-problem-849相关推荐

  1. daimayuan每日一题#849 国家铁路

    题目链接:国家铁路 - 题目 - Daimayuan Online Judgehttp://oj.daimayuan.top/course/11/problem/849 有亿点点难 思路:直接枚举是o ...

  2. 【Column Generation思考-02】|从对偶的角度理解Cutting Stock Problem【更新版本】

    [Column Generation思考-01]|从对偶的角度理解 Cutting Stock Problem简介 Cutting Stock Problem的Column generation re ...

  3. AOJ——分治递归之Exhaustive Search穷尽搜索

    AOJ的分治递归的第一题: Exhaustive Search Write a program which reads a sequence A of n elements and an intege ...

  4. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.

    所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...

  5. A + B Problem

    1001: A + B Problem Description 计算 A + B. Input 多组测试数据,每组测试数据占一行,包括2个整数. Output 在一行中输出结果. Sample Inp ...

  6. Error:(49, 1) A problem occurred evaluating project ':guideview'. Could not read script 'https://r

    出现问题如下: Error:(49, 1) A problem occurred evaluating project ':guideview'. > Could not read script ...

  7. #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)

    题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...

  8. ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem

    Stochastic Infinite Horizon Problem 3.Stochastic Infinite Horizon Problem 定义3.1 无限范围的马尔可夫决策过程 (Marko ...

  9. ADPRL - 近似动态规划和强化学习 - Note 2 - Stochastic Finite Horizon Problem

    2. Stochastic Finite Horizon Problem 在这一节中主要介绍了随机DP算法来解决不确定性下的有限地范围问题,如Denition 1.4所述,它被表述为一个组合优化问题. ...

  10. There was a problem confirming the ssl certificate ……

    在安装一个Python库onetimepass时发生下面的问题: pip install onetimepass Could not fetch URL https://pypi.python.org ...

最新文章

  1. 记一次lua打包环境导致的coredump
  2. VS2022 C28251 WinMain批注不一致的解决方法
  3. CTFshow 信息收集 web18
  4. Packagist发布个人的Composer包
  5. 0801 am使用tp框架对数据库增删改查
  6. js原生事件委托的实现
  7. Visual Stdio下安装WTL的向导Widzard
  8. CSS3自定义浏览器滚动条样式
  9. java 异步写_Java异步编程实战
  10. jdk10和jdk8共存和快速切换
  11. html如何制作图片平移的效果,抖音里单张图片平移视频怎么制作?影音制作实现一张图片从左到右滑动视频效果...
  12. 采用汇编语言对c语言函数调用的方法求平均数 汇编实验报告,汇编措辞调用C措辞求平均数.doc...
  13. dubbo的版本升级和-Xss的错误设置导致项目启动失败
  14. 学校创客教育实施方案
  15. 苹果cms是什么东西?
  16. opc客户端读取数据品质是bad_如何通过OPC自定义接口来实现客户端数据的读取
  17. ORA-01119、ORA-27040的两种可能存在的错误
  18. 校内集训11.1小结
  19. 系统变量和用户变量的区别
  20. kubernetes pod infra container网络原理

热门文章

  1. 发撒富商大贾是的鬼地方和
  2. 锁频脚本实现参考资料
  3. “Linux三剑客”——grep查找、sed替换、awk格式化文本
  4. KKB : maven的介绍
  5. 扫描版页面自动切边工具 v1.1
  6. 中国降水量数据dta和EXCEL版:1979-2020年面板数据
  7. Sourceinsight最佳配色方案及颜色字体调整方法
  8. ElasticSearch 入门教程笔记
  9. 解决Ubuntu18.04使用WPS文字时输入法候选列表无法跟随问题
  10. 【转】博士就业不如硕士?我看不出!