这里可以找到规律就是分子等于分母乘以n的四舍五入
四舍五入的计算方法见下面
注意题目的数据里面包括分子为0的情况,也就是说n可能为0.00000
#include<stdio.h>
double fbs(double x){return x<0?-x:x;}
int gcd(int a,int b)
{
while(b)
{
int t=a%b;
a=b;
b=t;
}
return a;
}
int main()
{
int T;
double n;
//freopen("in.txt","r",stdin);
scanf("%d",&T);
while(T--)
{
scanf("%lf",&n);
int up,down,t;
double temp,eps=1.0,num;
for(int i=1;i<=1000;i++){
t=int(n*i+0.5);
num=fbs(((double)t)/i-n);
if(num<eps){
up=t,down=i;
eps=num;
}
}
int x=gcd(up,down);
printf("%d/%d\n",up/x,down/x);
}
return 0;
}