题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2092
解题思路:网上百度了一元二次方程有整数解的情况的时候,根与系数的关系,发现还是用求根公式直接判断比较方便,另外还可以遍历来做,就是用一个二重循环,枚举i,j的值,看是不是满足 i+j=n,i*j=m
反思:读题目一定要仔细,输入的m,n都是整数
#include<stdio.h> #include<math.h> int panduan(double m) { if((long int)m==m) return 1; else return 0; } int main() { int m,n; double s1; while(scanf("%d %d",&m,&n)!=EOF) { if(m==0&&n==0) break; else { s1=(-m+sqrt(m*m-4*n))/2; if(panduan(s1)) printf("Yes "); else printf("No "); } } }