1684: [Usaco2005 Oct]Close Encounter
2015-10-13 22:06
369 查看
1684: [Usaco2005 Oct]Close Encounter
Time Limit: 5 Sec Memory Limit:64 MB
Submit: 423 Solved: 199
[Submit][Status][Discuss]
Description
Lacking even a fifth grade education, the cows are having trouble with a fraction problem from their textbook. Please help them. The problem is simple: Given a properly reduced fraction (i.e., the greatest common divisor of the numerator and denominatoris 1, so the fraction cannot be further reduced) find the smallest properly reduced fraction with numerator and denominator in the range 1..32,767 that is closest (but not equal) to the given fraction. 找一个分数它最接近给出一个分数. 你要找的分数的值的范围在1..32767
Input
* Line 1: Two positive space-separated integers N and D (1 <= N < D <= 32,767), respectively the numerator and denominator of the given fractionOutput
* Line 1: Two space-separated integers, respectively the numerator and denominator of the smallest, closest fraction different from the input fraction.Sample Input
2 3Sample Output
21845 32767OUTPUT DETAILS:
21845/32767 = .666676839503.... ~ 0.666666.... = 2/3.
HINT
Source
题意是找一个最接近但不相等的分数。。然后注意精度
判断(a/b)==(x/y)使用ay==bx...
#include<cstdio> #include<iostream> #include<cmath> using namespace std; typedef double DB; DB v,now,M; int a,b,i,j,a1,a2; void Judge(int x,int y) { DB V = (DB)(x) / (DB)(y); if (abs(V - v) < M) { if (x * b == y * a) return; M = abs(V-v); a1 = x; a2 = y; } } int main() { cin >> a >> b; v = (DB)(a) / (DB)(b); M = 1E5; for (i = 1; i <= 32767; i++) { int k = (DB)(a) / (DB)(b) * (DB)(i); Judge (k-1,i); Judge(k,i); Judge(k+1,i); } printf("%d %d",a1,a2); return 0; }
相关文章推荐
- 151013C#学习笔记
- 第三方判断网络状态
- POJ 1465 Multiple(BFS+同于定理+打印路径)
- selinux--rhel5
- AOP (面向切面编程)
- HDU 2102 A计划 (BFS)
- LEETCODE-Nim Game(博弈论,Bush Game )
- Linux Kernel系列三:Kernel编译和链接中的linker script语法详解
- 【黑马程序员】【Foundation框架】NSNumber、NSValue和NSData
- static与const小结
- leetcode292——Nim Game
- 在App中添加微信分享功能
- Struts漏洞分析与研究
- 如何更好地使用word(1)
- Eclipse UML 插件: ObjectAid UML Explorer
- Linux用户及权限详解
- codeforces586C Gennady the Dentist(模拟)
- web测试方法总结
- Adaboost训练过程的详解
- 【Android】error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.NoActionBar'.