社区讨论
求助!满江红 不道哪里出问题了
灌水区参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m1p27g0u
- 此快照首次捕获于
- 2024/09/30 21:42 去年
- 此快照最后确认于
- 2024/09/30 21:45 去年
#include <bits/stdc++.h>
using namespace std;
bool ok(long long x){
long long d = sqrt((long double)x + 0.5);
if(d * d == x){
return true;
}
return false;
}
int main(){
int k;
cin >> k;
while(k--){
long long n, d, e;
cin >> n >> d >> e;
long long m = n - d * e + 2;
long long t = m * m - 4 * n;
if(t < 0 || !ok(k)){
puts("NO");
continue;
}
bool flag = false;
long long now = sqrt((long double)t), p, q;
if((m + now) % 2 == 0){
q = (m + now) / 2;
if(n % q == 0){
p = n / q;
flag = true;
}
}else if(m - now > 0 && (m - now) % 2 == 0){
q = (m - now) / 2;
if(n % q == 0){
p = n / q;
flag = true;
}
}
if(!flag){
puts("NO");
continue;
}else{
if(p > q){
swap(p, q);
//cout << p << " " << q << endl;
}
cout << p << " " << q << endl;
}
}
return 0;
}
到底是哪里出问题了?我写错哪了?(疑问)我太蒻了(T_T),各位大佬教教我,多谢
回复
共 2 条回复,欢迎继续交流。
正在加载回复...