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");
    }
}