为什么只管第二个根
查看原帖
为什么只管第二个根
1122193
FarmerDrone楼主2024/3/3 10:59

自己推的,但对求根这里不太清楚,为什么只关注第二个根。AC码:

#include <bits/stdc++.h>
using namespace std;

double gen1 (double a, double b, double c)
{
	return (-b + sqrt(b * b - 4 * a * c)) / 2 / a;
}

double gen2 (double a, double b, double c)
{
	return (-b - sqrt(b * b - 4 * a * c)) / 2 / a;
}

bool zheng (double x)
{
	if (abs(x - (int)x) < 1e-16)
		return 1;
	else
		return 0;
}

int main()
{
	double n;
	int t;
	cin >> t;	
	while (t--)
	{
		cin >> n;
		int ans_num = 0;
		if (n == 1)
			cout << "3 4\n";
		else
		{
			for (double i = 3; i <= n; i += 1)
			{
				if (/*zheng(gen1((i - 2) / 2, (i - 4) / 2, - n)) ||*/zheng(gen2((i - 2) / 2, (i - 4) / 2, - n)))
					if (ans_num < 2 || i == 204)
					{
						ans_num++;
						cout << i << " ";
					}
				if (ans_num > 1)
					break;
			}
			if (!ans_num)
				cout << "Poor " << n;
			cout << endl;	
		}
	}
	return 0;
}

如果把注释部分加入代码就会WA一堆

2024/3/3 10:59
加载中...