1 条题解
-
1
世界上最好的题解😄
#include<bits/stdc++.h> using namespace std; int gcd(int a,int b){ if(a<b)swap(a,b); if(b==0)return a; return gcd(b,a%b); } void ZorX(int a,int b){ if(a==0){ cout<<0; return ; } if(a%b==0){ cout<<a/b; return; } if(a*b<0)cout<<'-'; if(a<0)a=-a; if(b<0)b=-b; int t=gcd(a,b); cout<<a/t<<"/"<<b/t; } void f(int a,int b){ if(b<0)b=-b; int t=1; for(int i=sqrt(a);i>=2;i--){ if(a%(i*i)==0){ a/=(i*i); t=i; break; } } int G=gcd(t,b); t=t/G;b=b/G; if(t!=1)cout<<t<<"*"; cout<<"sqrt("<<a<<")"; if(b!=1)cout<<'/'<<b; } int main(){ int t,m,a,b,c; cin>>t>>m; while(t--){ cin>>a>>b>>c; int delta=b*b-4*a*c; if(delta<0)cout<<"NO"; else{ int d=sqrt(delta); if(d*d==delta){ double a1=1.0*(-b+d)/(2*a); double a2=1.0*(-b-d)/(2*a); if(a1>a2) ZorX((-b+d),(2*a)); else ZorX((-b-d),(2*a)); } else{ if(b!=0)ZorX(-b,2*a); if(b!=0)cout<<'+'; f(delta,2*a); } } cout<<endl; } return 0; }
看完别忘了点赞呦👀️
- 1
信息
- ID
- 9096
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 4
- 已通过
- 3
- 上传者