杭电ACM2092–整数解    分析

http://acm.hdu.edu.cn/showproblem.php?pid=2092

 

一个YES,一个Yes。试了10几次、、我也是无语了。。哪里都不错的。。。。

很简单,用2次求根公式求出其中一个的值,然后判断是否为整数    if (x == int(x) )。

或者  用最直接的方法,从-m到m挨个算。有意结果时停止。

 

源码:

 
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5. int m,n;
  6. double x,y;
  7. while (scanf("%d%d",&n,&m)!=EOF&&(m!=0||n!=0))
  8. {
  9. x = ((double)n+(double)sqrt((double)(n*n-4*m)))/2;
  10. //y = ((double)n-(double)sqrt((double)(n*n-4*m)))/2;
  11. if (x == int(x) )//|| y == int(y))
  12. printf("Yes\n");
  13. else
  14. printf("No\n");
  15. }
  16. return 0;
  17. }
  18. /*
  19. #include<stdio.h>
  20. #include<math.h>
  21. void main()
  22. {
  23. int n,m,i;
  24. while(scanf("%d%d",&n,&m)==2&&(n!=0||m!=0))
  25. {
  26. for(i=-abs(m);i<=abs(m);i++)
  27. {
  28. if(i*(n-i)==m)
  29. break;
  30. }
  31. if(i==(abs(m)+1))
  32. printf("No\n");
  33. else
  34. printf("Yes\n");
  35. }
  36. }*/

 

 

 

版权声明:本文为acmwangpeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/acmwangpeng/p/5524881.html