Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
下面的代码片段有什么问题,VS2010 不会编译它?
int m = sqrt( n );
(我试图确定一个整数是否是素数......)
您需要将特定的浮点类型传递给sqrt- 没有整数重载。使用例如:
sqrt
long double m = sqrt(static_cast<long double>(n));
因为你cmath不包括math.h我假设你想要c ++。对于 C,您需要使用例如:
cmath
math.h
double m = sqrt((double) n);
你得到的错误仅仅意味着编译器不能自动sqrt为你选择一个函数——你传递的整数需要转换为浮点类型,编译器不知道sqrt它应该选择哪个浮点类型和函数。