杭电ACM2092--整数解
杭电ACM2092–整数解 分析
http://acm.hdu.edu.cn/showproblem.php?pid=2092
一个YES,一个Yes。试了10几次、、我也是无语了。。哪里都不错的。。。。
很简单,用2次求根公式求出其中一个的值,然后判断是否为整数 if (x == int(x) )。
或者 用最直接的方法,从-m到m挨个算。有意结果时停止。
源码:
#include <stdio.h> #include <math.h> int main() { int m,n; double x,y; while (scanf("%d%d",&n,&m)!=EOF&&(m!=0||n!=0)) { x = ((double)n+(double)sqrt((double)(n*n-4*m)))/2; //y = ((double)n-(double)sqrt((double)(n*n-4*m)))/2; if (x == int(x) )//|| y == int(y)) printf("Yes\n"); else printf("No\n"); } return 0; } /* #include<stdio.h> #include<math.h> void main() { int n,m,i; while(scanf("%d%d",&n,&m)==2&&(n!=0||m!=0)) { for(i=-abs(m);i<=abs(m);i++) { if(i*(n-i)==m) break; } if(i==(abs(m)+1)) printf("No\n"); else printf("Yes\n"); } }*/
版权声明:本文为acmwangpeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。