用 C 语言计算给定数字的平方根

给定一个数字 N,我们的任务是编写一个 C 程序来求出该数字 N平方根

示例:

> 输入: N = 12

> 输出: 3.464102

>

>

>

>

>

> 输入: N = 16

> 输出: 4

方法 1:使用内置 sqrt() 函数: sqrt() 函数返回任意数字 N 的平方根。

下面是上述方法的实现:

C


CODEBLOCK_6af30073

输出:

3.464102

时间复杂度:O(logN),因为内置的 sqrt() 函数耗时为 log(n)
辅助空间:O(1)
方法 2:使用 二分查找 这种方法用于查找给定数字 N 的平方根,精度可达 5 位小数。

  • 数字 N 的平方根位于 0 ? squareRoot ? N 的范围内。初始化 start = 0 和 end = number。
  • 比较 mid 整数的平方与给定的数字。如果相等,那么我们就找到了整数部分,否则根据条件在 mid 的左侧或右侧查找。
  • 找到整数部分后,我们将查找小数部分。
  • 用 0.1 初始化增量变量,并迭代计算小数部分,直到 5 位小数
  • 在每次迭代中,将增量更改为其前一个值的 1/10
  • 最后,返回计算出的答案。

下面是上述方法的实现:

C


CODEBLOCK_d9bb7038

输出:

3.464099

方法 3:使用 log2() 可以使用 log2() 计算数字 N 的平方根,公式如下:

> 设 d 为输入数字 N 的答案,则

>

>

>

>

>

> d = N^{\frac{1}{2}}

>

>

>

>

>

> 两边同时应用 log2()

>

>

>

>

>

> log2(d) = log2(N^{\frac{1}{2}})

>

>

>

>

>

> log2(d) = {\frac{1}{2}}*log2(N)

>

>

>

>

>

> d = 2^{{\frac{1}{2}}*log2(N)}

>

>

>

>

>

> 因此,

>

>

>

>

>

> d = pow(2, 0.5*log2(n))

下面是上述方法的实现:

C


CODEBLOCK_01ae2c9f

输出:

3.464102
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/54375.html
点赞
0.00 平均评分 (0% 分数) - 0