杭电ACM 2092:整数解

来源:互联网 发布:网络真人棋牌 编辑:程序博客网 时间:2024/04/30 07:37

这里写图片描述

这道题为简单题

n + m = x
n * m = y

n(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;}
0 0