题意:就是判断这个a,b,c已知的一元二次方程是否能够十字相乘;
思路:当Δ为完全平方数时,可以在整数范围对该多项式进行十字相乘。
#include<stdio.h>
#include<math.h>
int main()
{
int T;
while(scanf("%d",&T)!=EOF)
{
while(T--)
{
__int64 a,b,c,sum;
scanf("%I64d%I64d%I64d",&a,&b,&c);
sum=b*b-4*a*c;
__int64 t=(__int64)(sqrt(sum)); //注意强制转换,和强制转换后的数据类型
if(t*t==sum)
printf("YES\n");
else
printf("NO\n");
}
}
}