为啥没做强制转换就WA?
#include<stdio.h>
#include<math.h>
int main()
{
int p,q,n,i,x,y,num,xx[100000],yy[100000],len;
while(scanf("%d",&n)!=EOF)
{
p=q=num=0;
len = (int)(sqrt((double)(n/2.0)));
for( x=0; x<=len; x++)
{
y = (int)sqrt((double)n - x*x);
if(y<x)
break;
else
if( x*x + y*y != n )
continue;
else{
xx[p++]=x;
yy[q++]=y;
}
}
if(n==0)
printf("%d\n",++num);
else
{
if(p!=0)
{
if(xx[0]==0)
num=4;
else
{
if(yy[0]==xx[0])
num=4;
else
num=8;
}
for(i=1;i<p;i++)
if(xx[i]==yy[i])
num+=3;
else
num+=8;
}
printf("%d\n",num);
}
}
return 0;
}