70pts救救孩子吧,7# 9# 10#错误
查看原帖
70pts救救孩子吧,7# 9# 10#错误
237570
hy1089knigh楼主2022/10/31 20:56

想不通哪里错了,是判断相等时不能用==,而要用差小于eps吗?能否给出一个数据呢?

#include<bits/stdc++.h>
using namespace std;
int main(){
//	freopen("decode.in","r",stdin);
//	freopen("decode.out","w",stdout);
	long long int k,n,e,d;
	cin>>k;
	for(int i=1;i<=k;i++){
		cin>>n>>e>>d;
		long long int t=-(e*d-2-n);
		long long int derta=pow(t,2)-4*n;
		if(derta<0){
			cout<<"NO"<<endl;
			continue;
		}
		else{
			long long int ans1=abs(-t+sqrt(derta))/2,ans2=abs(-t-sqrt(derta))/2;
			if((abs(-t+sqrt(derta))/2)==ans1||(abs(-t-sqrt(derta))/2)==ans2){
				cout<<ans1<<" "<<ans2<<endl;
			}
			else{
				cout<<"NO"<<endl;
				continue;
			}
		}
	}
	return 0;
}
2022/10/31 20:56
加载中...