http://acm.hdu.edu.cn/showproblem.php?pid=1017
说是水题,题目意思理解就费了好大事,又来个强制转型问题,原来int型运算结果转double型已经把小数截掉了
#include <stdio.h> int main() { int N,n,m,i,j; double t,s; scanf("%d",&N); while(N--) { int x,r=0; while(scanf("%d%d",&n,&m)!=EOF) { r++; if(n==0&&m==0)break; int x=0,k; for(i=1;i<n;i++) { for(j=i+1;j<n;j++) { t=double(i*i+j*j+m)/double(i*j); s=t; k=(int)t; if(s-k==0) x++; } } printf("Case %d: %d\n",r,x); } if(N) printf("\n"); } }