在线求助二次方程解
查看原帖
在线求助二次方程解
796937
Chang0311楼主2023/9/18 22:24

数学解法(一元二次方程) 怎么不行QaQ

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int k;

int main()
{
	cin >> k;
	while(k >= 1)
	{
		long double q, p;
		ll n, m, e, d;
		cin >> n >> d >> e;
		m = n - e * d + 2;
		long double temp = sqrt(m * m - 4 * n);
		p = (static_cast<int>(temp) + m) / 2;
		q = m - p;
		if(q * p != n || e * d != ((p - 1) * (q - 1) + 1))
		{
			cout << "NO" << endl;
			--k;
			continue;
		}
		else if(p < q)
			cout << p << ' ' << q << endl;
		else
			cout << q << ' ' << p << endl;
		--k;
	}
	return 0;
}

2023/9/18 22:24
加载中...