poj 3039 Close Encounter

poj 3039 Close Encounter,第1张

poj 3039 Close Encounter
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<stack>#include<cstdlib>#define INF 100000000#define fi first#define se secondusing namespace std;typedef long long LL;typedef pair<int,int> pii;int main(){    double tn,td,ti,k,ans=INF,tj;    int i,j,n,d,rn,rd;    cin>>n>>d;    tn=n,td=d;    k=tn/td;    for(i=1;i<=32767;i++)    {        if(i%n==0)        { j=i/n*d; if(j-1<=32767) {     if(fabs(double(i)/double(j-1)-k)<ans)     {         ans=fabs(double(i)/double(j-1)-k);         rn=i,rd=j-1;     } } if(j+1<=32767) {     if(fabs(double(i)/double(j+1)-k)<ans)     {         ans=fabs(double(i)/double(j+1)-k);         rn=i,rd=j+1;     } }        }        else        { ti=(double)i; tj=i/k; tj=floor(tj); //if(i==21845) cout<<tj<<endl; if(int(tj+0.5)>32767) break; if(fabs(ti/tj-k)<ans) {     ans=fabs(ti/tj-k);     rn=i,rd=int(tj+0.5); } tj+=1; if(int(tj+0.5)>32767) continue; if(fabs(ti/tj-k)<ans) {     ans=fabs(ti/tj-k);     rn=i,rd=int(tj+0.5); }        }    }    //cout<<ans<<endl;    cout<<rn<<' '<<rd<<endl;    return 0;}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4916621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存