A52028. 最接近的分数
填空题
困难
知识点
题目描述
最接近的分数
题目描述
分母不超过 N 且 小于 A/B 的最大最简分数是多少?
输入
三个正整数N,A,B,相邻两个数之间用单个空格隔开。1 <= A < B < N <= 1000。
输出
两个正整数,分别是所求分数的分子和分母,中间用单个空格隔开。
样例输入
100 7 13
样例输出
50 93
参考答案
#include<cstdio>
double commom(double x,double y) {
double m=x,n=y,r;
do {
r=int(m)%int(n);
m=n;
n=r;
} while(r!=0);
return m;
}
int main() {
double sum,a,b,n,i,A,B,max=0,p,q;
scanf("%lf%lf%lf",&n,&a,&b);
for(B=n; B>=1; B--)
for(A=1;; A++) {
if(A/B>a/b) break;
if(A/B>max&&A/B<a/b) {
max=A/B;
p=A/commom(A,B);
q=B/commom(A,B);
}
}
printf("%g %g",p,q);
return 0;
}答案解析
算法分析:枚举法
上一题
下一题