社区讨论
50pts求调
P9750[CSP-J 2023] 一元二次方程参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0o2xx
- 此快照首次捕获于
- 2025/11/03 18:48 4 个月前
- 此快照最后确认于
- 2025/11/03 18:48 4 个月前
真没招了
CPP#include<bits/stdc++.h>
#define ll long long
#define ld long double
#define INF 1e18
#define Shy return
#define code 0;
using namespace std;
ll T, M;
ll gcd(ll a, ll b) {
return b == 0 ? a : gcd(b, a % b);
}
ll square(ll x){
ll maxn = -1;
for(ll i = 2; i * i <= x; i++){
if(x % (i * i) == 0) maxn = max(maxn, i);
}
return maxn;
}
void pnum(ll x, ll a){
if(x % 2 * a == 0){
cout << x / (2 * a);
}
else if(x % 2 == 0){
ll x1 = x / 2;
cout << x1 << "/" << a;
}
else{
cout << x << "/" << 2 * a;
}
}
int main(){
scanf("%lld%lld",&T, &M);
while(T--){
ll a, b, c;
scanf("%lld%lld%lld",&a, &b, &c);
ll del = b * b - (4 * a * c);
if(del < 0){
puts("NO");
continue;
}
ll sqdel = sqrt(del);
if(sqdel * sqdel == del){
ll jie1 = (-b - sqdel) / (2 * a);
ll jie2 = (-b + sqdel) / (2 * a);
ll x = 0;
if(jie1 > jie2){
x = (-b - sqdel);
}
else x = (-b + sqdel);
pnum(x, a);
cout << endl;
}
else{
ll b1 = -b;
pnum(b1, a);
cout << "+";
if(square(del) == -1){
cout << "sqrt(" << del;
cout <<")" << "/" << 2 * a << endl;
continue;
}
else{
ll q2 = square(del);
del /= q2;
cout << q2 << "*sqrt(" << del << ")" <<"/" << 2 * a<< endl;
}
}
}
Shy code
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...