RE求救
查看原帖
RE求救
930739
Chang__An__Li楼主2024/10/10 11:44
#include<bits/stdc++.h>
#define gcd __gcd
using namespace std;
int t,m;
int delta;
int main(){
	scanf("%d%d",&t,&m);
	while(t--){
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		delta=b*b-4*a*c;
		if(delta<0){
			printf("NO\n");
			continue;
		}
		int sqr_del=1;
		for(int i=2;i<delta;i++){
			while(delta%(i*i)==0)
				sqr_del*=i,delta/=i*i;
		}
		int p=-b;
		int q=2*a;
		if(q<0)q=-q,p=-p;
		if(delta==1)delta=0,p+=sqr_del;
		int g1=gcd(abs(p),q),g2=gcd(sqr_del,q);
		if(delta==0){
			if(p%q==0)printf("%d",p/q);
			else printf("%d/%d",p/g1,q/g1);
		}
		else{
			if(p!=0){
				if(p%q==0)printf("%d",p/q);
				else printf("%d/%d",p/g1,q/g1);
				printf("+");
			}
			if(sqr_del/g2!=1)printf("%d*",sqr_del/g2);
			printf("sqrt(%d)",delta);
			if(q/g2!=1)printf("/%d",q/g2);
		}
		printf("\n");
	}
	return 0;
} 

自己下载数据后自测发现除零错误,求改。

2024/10/10 11:44
加载中...