p1601.dpr

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· DPR 代码 · 共 55 行

DPR
55
字号
program p1601;

{$APPTYPE CONSOLE}

const
        max=1e8;

var
        goal    :extended;
        l       :longint;
        p       :longint;
        i       :longint;
        up,down :longint;
        mis     :extended;


FUNCTION access(down:longint;left,right:real):real;
var
        mid     :real;
begin
if right-left<=0.05 then access:=left else
        begin
        mid:=(left+right)/2;
        if mid/down<goal then access:=access(down,mid,right)
                else access:=access(down,left,mid);
        end;
end;



begin
while not eof do
        begin
        readln(goal);
        readln(l);
        //readin


        mis:=max;up:=0;down:=0;
        for i:=1 to l do
                begin
                p:=trunc(access(i,1,max));
                if abs((p+1)/i-goal)<abs(p/i-goal) then p:=p+1;
                if p>l then p:=l;
                if abs(p/i-goal)<mis then
                        begin
                        mis:=abs(p/i-goal);
                        up:=p;
                        down:=i;
                        end;
                end;
        writeln(up,' ',down);
        end;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?