c# - 检查数字是否是完全平方数(数字超过 15 位)

标签 c# c++ c square-root

我想计算一个超过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;    
    }
}

但是 double 或 long double 是否可以容纳 15 位或更多

语言没有障碍。 我也可以用 C# 编写代码

谢谢:)

最佳答案

在 C# 中,您可以使用 decimal 获取最多 29 位数字,使用 BigInteger 获取任意多个数字。

但是,您需要采用不同的技术来判断 100 位 BigInteger 是否是完全平方数,因为据我所知,没有现成的“根”函数。

关于c# - 检查数字是否是完全平方数(数字超过 15 位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15989285/

相关文章:

c# - 用户的 SharpBox 进度条

c# - 事件处理程序未删除

c# - 如何在 join linq 语法中比较 null

c++ - C++中Boost.Geometry中的多边形转换:直线的平移,旋转,反射

c++ - 构造函数与析构函数环境组装

c++ - 用于在 C++ 中存储 double 的可移植二进制文件

c++ - 获取 __m256 变量中不为零的第一个元素的索引

c# - WebApi(MVC 5) PUT 方法不允许使用 HTTP/1.1 405 方法

c - C语言程序末尾的段错误

c - 每行前面有额外的空间