这道题为简单题
n + m = x
n * m = yn(x-n) = y
-n^2 + nx -y = 0
deta = x^2 - 4( -1 * (-y)) // 大于等于0时有解
deta = x^2 -4y
所以只要运用公式即可得出结果。注意结果“Yes”“No”只有第一个字母大写,后面小写。我就是都写成了大写,然后一直通不过,花了冤枉时间。我的AC代码如下。
#include <iostream>
#include<math.h>
using namespace std;
int main(void)
{
int n,m;
int temp;
double temp1;
while(cin>>n>>m)
{
if(n==0&&m==0)break;
temp=n*n-4*m;//使用判别公式b的平方减去4ac
if(temp<0)
{
cout<<"No"<<endl;
}
else
{
temp1=sqrt((double)temp);
if((int)temp1!=temp1)
cout<<"No"<<endl;
else
cout<<"Yes"<<endl;
}
}
return 0;
}
本文介绍了解一个特定形式的方程组的方法:n+m=x且n*m=y,并给出了一个C++实现代码示例。通过计算判别式来判断方程是否有整数解。
927

被折叠的 条评论
为什么被折叠?



