怎么会有问题
查看原帖
怎么会有问题
963306
wjq314159楼主2023/7/29 11:15

求问大佬此处有无错误

#include<bits/stdc++.h>
using namespace std;
long long T;
int main(){
	cin>>T;
	while(T--){
		long long n,e,d;
		cin>>n>>e>>d;
		long long p1=sqrt((n-e*d+2)*(n-e*d+2)-4*n),p2=n-e*d+2;
		long long p=(p1+p2)/2;
		long long q=p2-p;
		if(p*q==n&&e*d==(p-1)*(q-1)+1&&p>=0&&q>=0){
			cout<<min(p,q)<<" "<<max(p,q)<<endl; 
		}
		else{
			cout<<"NO"<<endl;
		}
	}
	return 0;
}

根据我们班同学的说法,((n-ed+2)(n-ed+2)-4n)无法判断是否为正数,会出问题。

但我编样例发现没有问题。

求大佬指教Orz。

2023/7/29 11:15
加载中...