社区讨论
求调
灌水区参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m2lw1w8v
- 此快照首次捕获于
- 2024/10/23 21:06 去年
- 此快照最后确认于
- 2025/11/04 16:24 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
int t,mx;
cin>>t>>mx;
while(t--){
int a,b,c;
cin>>a>>b>>c;
int d = b * b - 4 * (a * c);
if(d < 0){
cout<<"NO"<<endl;
continue;
}
if(sqrt(d) == (int)(sqrt(d))){
int fz = sqrt(d) - b;
int fm = 2 * a;
int g = __gcd(fz,fm);
if(fm / g == 1){
if((fz < 0 && fm > 0)|| (fm < 0 && fz > 0)){
cout<<"-";
}
cout<<abs(fz / g)<<endl;
continue;
}else{
if((fz < 0 && fm > 0)|| (fm < 0 && fz > 0)){
cout<<"-";
}
cout<<abs(fz / g)<<"/"<<abs(fm / g)<<endl;
continue;
}
}else{
int fz = -1 * b,fm = 2 * a;
if(fz != 0 && fm != 0){
int g = __gcd(fz,fm);
if(fm / g == 1){
if((fz < 0 && fm > 0)|| (fm < 0 && fz > 0)){
cout<<"-";
}
cout<<abs(fz / g);
}else{
if((fz < 0 && fm > 0) || (fm < 0 && fz > 0)){
cout<<"-";
}
cout<<abs(fz / g)<<"/"<<abs(fm / g);
}
cout<<"+";
}
fz = 0;
for(int i = 1; i <= sqrt(d); i++){
if(d % (i * i) == 0){
fz = i;
}
}
fm = 0;
// cout<<"三角:"<<d<<endl;
int gc = __gcd(fz,2 * a);
d = d / fz / fz;
fz /= gc;
fm = 2 * a / gc;
// cout<<fm<<endl;
if(fz >= 2){
cout<<fz<<"*";
}
cout<<"sqrt(";
cout<<d<<")";
if(fm != 0 && fm != 1 && fm != -1){
cout<<"/";
cout<<abs(fm);
}
cout<<endl;
}
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...