quadratic equation

来源:互联网 发布:三菱plc如何编程 编辑:程序博客网 时间:2024/06/11 04:57


quadratic equation

Time Limit: 2000MS Memory Limit: 131072KB
Submit Statistic

Problem Description

With given integers a,b,c, you are asked to judge whether the following statement is true: "For any x, if a+bx+c=0, then x is an integer."

Input

The first line contains only one integer T(1≤T≤2000), which indicates the number of test cases.
For each test case, there is only one line containing three integers a,b,c(−5≤a,b,c≤5).

Output

or each test case, output “YES” if the statement is true, or “NO” if not.

Example Input

31 4 40 0 11 3 1

Example Output

YESYESNO

Hint

Author

“浪潮杯”山东省第八届ACM大学生程序设计竞赛(感谢青岛科技大学) 
P     Q    P->Q
0     0         1
0     1         1
1     0         0
1     1         1

若条件P为假命题  结论无所谓  该命题就是真明题

即不满足a+bx+c=0则输出YES

若满足 a+bx+c=0 那么只有x为整数就输出YES,否则输出NO 
import java.util.*;import java.math.*;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubint T;Scanner in=new Scanner(System.in);T=in.nextInt();for(int i=0;i<T;i++){int flag=0;int a,b,c;a=in.nextInt();b=in.nextInt();c=in.nextInt();if(a==0&&b==0){if(c==0){System.out.println("NO");}else{System.out.println("YES");}}else if(a==0&&b!=0){if(c%b!=0){System.out.println("NO");}else{System.out.println("YES");}}else if(a!=0){int b2=b*b-4*a*c;if(b2<0){System.out.println("YES");}else{double sq=Math.sqrt(b2);double a1=(-b+sq)/(2*a);double a2=(-b-sq)/(2*a);double Inta1=(int)(a1);double Inta2=(int)(a2);if((a1-Inta1==0)&&(a2-Inta2==0)){System.out.println("YES");}else{System.out.println("NO");}}}}}}

阅读全文
0 0