如题,最好详细一点,谢谢!!!
include
#include
#include
int main(){
int n,m,det,a,b,c;
double x;
while(scanf("%d%d",&n,&m)==2)
if(m!=0||n!=0)
if ( abs(m)<10000&&abs(n)<10000)
a=1,b=-(m+n),c=m*n;
det=b*b-4*a*c;
if(det<0)
printf("No");
else
x=(-b+sqrt(det))/(2*a);
if(floor(x)==x)
printf("Yes");
else printf("No");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
int n,m,det,x;
while(scanf("%d%d",&n,&m)==2,(n!=0&&m!=0))
{
if (abs(m)<10000&&abs(n)<10000)
{
det=n*n-4*m;
if(det<0)
printf("No\n");
else
x=(int)sqrt((float)det);
if(x*x==det)
printf("Yes\n");
else if((n+x)%2==0&&(n-x)%2==0)
printf("Yes\n");
else printf("No\n");
}
}
return 0;
}
再看一看题目,你的m和n应该分别为x和y的和与积。
也就是说:
a=1,b=-(m+n),c=m*n;
应该是:a=1,b=-m,c=n;