检查数字是否为完全平方数(数字大于15位)
Check if the number a perfectSquare (number has more than 15 digits)
我想计算一个超过15位的数字的平方根如果可能的话100位的话那就太棒了
number like 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;
}
}
语言没有障碍。我也可以用c#编程
谢谢:)
在c#中,您可以使用decimal
获得最多29位数字,BigInteger
获得任意多位数字。
然而,您需要一种不同的技术来判断100位BigInteger是否是完全平方数,因为据我所知,没有现成的"根"函数。
C中整数的大小与平台有关,因此不能保证它可以容纳多少位数字。您可以查看GNU Multiple Precision数学库来处理c中的大数。
在c++中,可以使用下面的函数检查long double类型可以保存多少个大值:
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
如果你真的想用100
数字来处理数字,你需要编写你自己的BigInteger类
相关文章:
- 查找最接近的大于当前数字的数字的索引
- 如何找到大于整数的最小数字
- 如何查找数字大于 5 的数字总和
- 为什么 CSpinButtonCtrl 不能正确处理大于 1000 的数字?
- 计算向量中大于数字的元素
- 如何在向量中找到大于某些数字的所有元素
- 如何在给出前两个数字的级数中找到大于 x 的第 n 个最小子数组总和?
- 显示用户输入的平均数大于 50 和所有可被 3 整除的数字的乘积
- 如何在数字大于类型 size_t 的最大数量时使用 std::bitset
- 如何将一个数字(大于8个字节)从字符阵列转换为其ASCII表示
- 如何生成数字,直到它们大于10 000
- C 用户输入4个数字,并且该程序检查它们大于少于
- 为什么此代码只能识别文本文件中的第一行?输入任何大于 1 的数字都会返回"Atomic Number Not Found"
- 给定一个数字n,打印序列中大于或等于n的第一个数字
- bignumber.h arduino如何解析大于10位数字的数字
- 使用单个堆栈的中缀到后缀不适用于大于 9 的数字
- 在字符串中的一行中搜索大于0的数字
- 从字符串转换为数字大于 std::numeric_limit<double>::d igits10 的双精度
- 在C++中打开一个数字大于9的COM端口
- 检查数字是否为完全平方数(数字大于15位)