求助,70分,3个RE
查看原帖
求助,70分,3个RE
1061745
yzl0225楼主2024/10/2 20:44

代码

#include<bits/stdc++.h>
#define T true
#define F false

using namespace std;
int a,b,c,d;
int ans_b1=1,ans_b2=1,ans_b3=1;
bool iss;
int main(){
	int t,m;
	cin>>t>>m;
//	for(int i=2;i<=m+3;i++){
//		if(h[i]!=1) p[++l]=i;
//		for(int j=2;j<=l;j++){
//			if(i*p[j]>m+1) break;
//			h[i*p[j]]=1;
//			if(i%p[j]==0) break;
//		}
//	}
	while(t--){
		cin>>a>>b>>c;
		d=b*b-4*a*c;
		if(d<0){
			cout<<"NO\n";
			continue;
		}
		else{
			bool isZheng=T;
			
			b=-b;
			a=2*a;
			
			if(a<0&&b<0) b=-b,a=-a;
			if(a<0||b<0) isZheng=F,b=abs(b),a=abs(a);
			
			
			if(d!=0){
				int d_out=1,d_in=d;
				for(int i=2;i<=d;i++){
					while(d_in%(i*i)==0){
						d_out*=i;
						d_in/=(i*i);
						if(d_in==1) break;
					}
					if(d_in==1) break;
				}
	
				int do_aGcd=__gcd(d_out,a);
				ans_b1=d_out/do_aGcd,ans_b2=d_in,ans_b3=a/do_aGcd;	
			}
			
			if(a!=0&&b!=0){
				int a_bGcd=__gcd(a,b);
				a/=a_bGcd;
				b/=a_bGcd;
			}

			if(ans_b2==1&&d!=0){
				if(b==0){
					cout<<ans_b1;
					if(ans_b3!=1)cout<<'/'<<ans_b3;
				}
				else{
					if(isZheng){
						int t=ans_b3*a/__gcd(ans_b3,a);
						ans_b1*=(t/ans_b3);
						b*=(t/a);
						int gcd=__gcd(ans_b1+b,t);
						cout<<(ans_b1+b)/gcd;
						if(t/gcd!=1)cout<<'/'<<t/gcd;
					}
					else{
						if(b>ans_b1){
							cout<<'-';
							swap(b,ans_b1);
						}
						int t=ans_b3*a/__gcd(ans_b3,a);
						ans_b1*=(t/ans_b3);
						b*=(t/a);
						if(ans_b1-b==0) cout<<0;
						else{
							int gcd=__gcd(ans_b1-b,t);
							cout<<(ans_b1-b)/gcd;
							if(t/gcd!=1)cout<<'/'<<t/gcd;	
						}
						
					}
				}
			}
			else if(b!=0){
				if(!isZheng){
					cout<<'-';
				}
				cout<<b;
				if(a!=1&&b!=0) cout<<'/'<<a;
			}
			
			if(d>1&&ans_b2>1){
				if(b!=0) cout<<'+';
				if(ans_b1!=1) cout<<ans_b1<<'*';
				printf("sqrt(%d)",ans_b2);
				if(ans_b3!=1) cout<<'/'<<ans_b3;
			}
			if(d==0&&b==0) cout<<0;
			cout<<endl;
			
		}
	}
	return 0;
}

结果 70分 3个RE

Runtime Error.
Received signal 8: Floating-point exception.

查了,网上说可能是除0错误,但我找不出(可能我眼睛不好)

2024/10/2 20:44
加载中...