一路小编程练习的疑惑
一道小编程练习的疑惑
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(限制在十万范围内找)
------解决方案--------------------
也许是编译器的优化
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(限制在十万范围内找)
#include <stdio.h>
#include <math.h>
int main()
{
int i;
int x, y;
for (i = 0; i <= 100000; i++)
{
x = (int)sqrt(i + 100);
y = (int)sqrt(i + 268);
if (x * x == i + 100 && y *y == i + 268)
{
printf("%d\n", i);
}
}
return 0;
}
这样是可以的
如果把x,y声明为double类型,且把int的强行转化去掉,就会把0到100000都打出来啊?求解
------解决方案--------------------
也许是编译器的优化