题意:找到一个最接近于 input分式 的分式
思路:分母从 1 到 62767 一次枚举,用 min 记录 原分式的值 与 当前考察分式 的 差值
(刚开始自己想得很简单,题目也没看清。花了很多时间和精力,几乎想放弃了。最终得到同学的提示,才弄出来的。)
min = 1.0;
tz = -1;
tm = -1;
t = z/m;
for(i=1; i<=32767; i++)
{
x = ceil(z*i/m);
if( (temp=fabs(x/i - t)) < min && temp > 1e-12 )
{
min = temp;
tz = x;
tm = i;
}
x--;
if( (temp=fabs(x/i - t)) < min && temp > 1e-12 )
{
min = temp;
tz = x;
tm = i;
}
}