bzoj 1684: [Usaco2005 Oct]Close Encounter【数学(?)】
生活随笔
收集整理的这篇文章主要介绍了
bzoj 1684: [Usaco2005 Oct]Close Encounter【数学(?)】
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
枚举分母,然后离他最近的分子只有两个,分别判断一下能不能用来更新答案即可
#include<iostream> #include<cstdio> #include<cmath> using namespace std; int a,b,aa,ab; double mx=10; void wk(int x,int y) {if(x*b==y*a)return;if(fabs((double)x/y-(double)a/b)<mx){mx=fabs((double)x/y-(double)a/b);aa=x,ab=y;} } int main() {scanf("%d%d",&a,&b);for(int i=1;i<=32767;i++)wk(floor((double)a/b*i),i),wk(floor((double)a/b*i)+1,i);printf("%d %d\n",aa,ab);return 0; }转载于:https://www.cnblogs.com/lokiii/p/9159405.html
总结
以上是生活随笔为你收集整理的bzoj 1684: [Usaco2005 Oct]Close Encounter【数学(?)】的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: vscode去除控制台ES6报错
- 下一篇: C语言第三题