你这样编译程序容易出现编译错误,因为函数sqrt()的返回值为double类型的,而x和y必须定义为int类型(完全平方数的定义)。可以进行类型转换:
x = (int)sqrt(i + 100);
y = (int)sqrt(i + 168);
这样编译通过,得出的结果为156.
x=sqrt(i+100);
y=sqrt(i+268);
x、y很大几率不是整数,而x、y变量变量的整形,会报错
末尾加上system("pause");
没错,只有警告
sqrt的返回值是 double
而你的 x, y 是 int
把它们改成 double 就行了
#include
#include
using namespace std;
int main()
{
double d1,d2;
int i1,i2;
int i;
for(i=1;i<=1e5;i++)
{
i1=d1=sqrt(i+100.0);
i2=d2=sqrt(i+268.0);
if(i1==d1&&i2==d2)
cout< }
return 0;
}