社区讨论
40分求教!P1298
题目总版参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lu2jefog
- 此快照首次捕获于
- 2024/03/22 18:47 2 年前
- 此快照最后确认于
- 2024/03/22 20:25 2 年前
CPP
#include <bits/stdc++.h>
using namespace std;
struct ret{
double a;
long long b;
};
double whi(double a,double b,double x){
double f = abs(x - a);
double s = abs(x - b);
if(f < s)
return a;
if(f > s)
return b;
return -1;
}
struct an{
double ans1;
double ans2;
double ans;
double con;
};
long long sswr(double a){
double c = a;
int b = a;
c -= b;
if(c < 0.5)
return b;
return b+1;
}
int main() {
//cout << whi(3.14159,3.14035,3.141592653589) << endl;
long long a,b;
double c;
cin >> a >> b >> c;
//int minn = a / c + 1;
// if(b > minn)
// b = minn;
an ans;
ans.ans = -100000000000;
ans.con = 0;
for(long long i = 1; i <= b; i++){
double x = 1.00 / i;
x = c / x;//分子
long long fz = sswr(x);
if(fz > a){
fz--;
if(fz>a){
fz--;
if(fz>a){
break;
}
}
}
x = 1.00/i;
x *= fz;
an tmp;
tmp.con = whi(ans.ans,x,c);
if(tmp.con != -1 && tmp.con == x){
ans.ans = tmp.con;
ans.ans1 = i;
ans.ans2 = fz;
ans.con = 0;
}
else{
ans.con = -1;
}
}
if(ans.ans != -1){
cout << ans.ans2 << '/' << ans.ans1;
}
else{
cout << "TOO MANY";
}
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...