杭电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 版权协议,转载请附上原文出处链接和本声明。