警示后人
查看原帖
警示后人
1035597
dededekdldw799楼主2024/10/25 15:38

带判别式的部分正负性永远是正的,输出时候直接abs完事。

inline void print_sq(int a,int sq,int b)
{
	a=myabs(a),b=myabs(b);
	if(a==b)cout<<"sqrt("<<sq<<")";
	else if(a%b==0)cout<<myabs(a/b)<<"*sqrt("<<sq<<")";
	else if(b%a==0)
		{cout<<"sqrt("<<sq<<")/"<<myabs(b/a);}
	else{
		int g=gcd(a,b);
		if(b/g<0)g=-g;//没啥用就是了
		cout<<myabs(a/g)<<"*sqrt("<<sq<<")/"<<myabs(b/g);
	}
} 

整数合并部分类似。

2024/10/25 15:38
加载中...