已知一个浮点数A(0<A<5),求它由哪两个整数B/C相除的值最接近,有相同值时要求B最小
例如:
A=0.2
B=1 C=5
#include <stdio.h>
#include <math.h>
int main () {
float A = 0.2f;
int x = 0;
if (A < 0) { x = 1; A = 1/A; }
float delta = 1;
int B = 1, C = 1;
do
{
C = (int)(B * A);
delta = fabs(C/(float)B-A);
B++;
}
while (delta > 0.000001); //如果你要高精度,就改小,否则改大
if (x == 0)
printf("%d / %d", C, B - 1);
else
printf("%d / %d", B - 1, C);
return 0;
}