我希望计算一个数字的平方根,如果可能的话包含超过15位数的100位数就会很棒
数字如100000000000000
目前我使用C作为数据类型
int IsPerfectSquare(int number)
{
if (number< 0)
return 0;
int root = (round(sqrt(number)));
if(number == (root * root))
{
return 1;
}
else
{
return 0;
}
}
但双倍或长双倍可以容纳15位数或更多
语言不是吧。 我也可以用C#编码
谢谢:)
答案 0 :(得分:2)
在C#中,您可以使用decimal
获取最多29位数字和BigInteger
以获得任意多位数字。
然而,你需要一种不同的技术来判断一个100位的BigInteger是否是一个完美的正方形,因为我没有现成的“根”功能。
答案 1 :(得分:0)
在C ++中,您可以使用以下函数检查long double可以容纳多少个大:
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
如果您真的想处理100
位数的数字,则需要编写自己的BigInteger类。
答案 2 :(得分:0)
C中整数的大小取决于平台,因此无法保证它可以容纳多少位数。您可以查看GNU Multiple Precision math library来处理C中的大数字。