- 浏览: 188570 次
- 性别:
- 来自: 济南
-
文章分类
最新评论
Implement int sqrt(int x).
Compute and return the square root of x.
一道设计题,实现sqrt方法,也就是开平方根。我们可以用二分法来做,设定left 为1, right为x, 用x / mid 和mid来进行比较(之所以用x / mid与mid比较,而不用x与mid*mid比较是因为mid*mid可能溢出,用x / mid可以防止溢出),如果x /mid 等于mid,就返回mid; 如果x /mid 小于mid,就让right = mid - 1; 如果x /mid 大于mid,就让left = mid + 1;直到left > right程序终止,这是left - 1恰好是我们要找的答案,返回就可以了。代码如下:
Compute and return the square root of x.
一道设计题,实现sqrt方法,也就是开平方根。我们可以用二分法来做,设定left 为1, right为x, 用x / mid 和mid来进行比较(之所以用x / mid与mid比较,而不用x与mid*mid比较是因为mid*mid可能溢出,用x / mid可以防止溢出),如果x /mid 等于mid,就返回mid; 如果x /mid 小于mid,就让right = mid - 1; 如果x /mid 大于mid,就让left = mid + 1;直到left > right程序终止,这是left - 1恰好是我们要找的答案,返回就可以了。代码如下:
public class Solution { public int mySqrt(int x) { if(x <= 1) return x; int l = 1; int r = x; while(l <= r) { int mid = l + (r - l) / 2; if(x / mid == mid) return mid; if(x / mid > mid) { l = mid + 1; } else { r = mid - 1; } } return l - 1; } }
发表评论
-
498. Diagonal Traverse
2019-11-15 13:52 289Given a matrix of M x N eleme ... -
496 Next Greater Element I
2019-11-14 13:50 294You are given two arrays (witho ... -
Word Break II
2016-03-09 03:15 415Given a string s and a dictiona ... -
Insert Interval
2016-03-08 02:11 398Given a set of non-overlapping ... -
Merge Intervals
2016-03-07 05:25 523Given a collection of intervals ... -
Merge k Sorted Lists
2016-03-07 04:03 602Merge k sorted linked lists and ... -
Multiply Strings
2016-03-06 07:27 504Given two numbers represented a ... -
N-Queens II
2016-03-06 03:06 697Follow up for N-Queens problem. ... -
N-Queens
2016-03-06 02:47 497The n-queens puzzle is the prob ... -
First Missing Positive
2016-03-05 03:09 452Given an unsorted integer array ... -
Spiral Matrix
2016-03-04 03:39 612Given a matrix of m x n element ... -
Trapping Rain Water
2016-03-04 02:54 627Given n non-negative integers r ... -
Repeated DNA Sequences
2016-03-03 03:10 455All DNA is composed of a series ... -
Increasing Triplet Subsequence
2016-03-02 02:48 924Given an unsorted array return ... -
Maximum Product of Word Lengths
2016-03-02 01:56 950Given a string array words, fin ... -
LRU Cache
2016-02-29 10:37 626Design and implement a data str ... -
Super Ugly Number
2016-02-29 07:07 715Write a program to find the nth ... -
Longest Increasing Path in a Matrix
2016-02-29 05:56 898Given an integer matrix, find t ... -
Coin Change
2016-02-29 04:39 809You are given coins of differen ... -
Minimum Height Trees
2016-02-29 04:11 750For a undirected graph with tre ...
相关推荐
double sqrt(double x); ``` 这个函数接受一个`double`类型的参数`x`,返回`x`的非负平方根。如果`x`为负数,`sqrt`函数将导致未定义的行为。因此,确保传入的参数总是非负的非常重要。 ### 2. 使用`sqrt`函数 在...
求x=sqrt(a),迭代公式为x1=1/2(x0+a/x0).x0为任意数。
auto sqrt_x = std::sqrt(static_cast(sqrt_x)>(x)); // 使用decltype确保类型明确 } ``` 总之,“sqrt对重载函数的调用不明确”问题主要是由于编译器无法确定最合适的函数版本。解决方法包括显式类型转换、使用...
对于给定的方程 f(x) = x^2 - 2,我们想要找到使得f(x) = 0的x值,也就是 sqrt(2)。牛顿迭代法的迭代公式为:xn+1 = xn - f(xn) / f'(xn),这里的f'(x)是f(x)的导数。对于 f(x) = x^2 - 2,其导数f'(x) = 2x。将f(x)...
sqrt(x):求根号x的值 主代码: int x; double ans; cin>>x; ans=sqrt(x);//将sqrt(x)的值赋给ans cout; 输入:36 输出:6 注意:如果要用sqrt函数需在第一行加入下面代码: #include 或者将#include改成下面代码: ...
在JavaScript中,可以使用Math库中的sqrt函数直接获取x的平方根。这种方法虽然简单,但并不是面试中考察的重点,而且在某些面试场合可能不被允许。 在编码实现时,我们还需要注意一些细节问题: - 处理边界情况,...
# 实现 int sqrt(int x) 函数 # 计算并返回 x 的平方根,其中 x 是非负整数 # 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去 # 示例 1: # 输入: 4 # 输出: 2 # 示例 2: # 输入: 8 # 输出: 2 #...
### 平方根函数sqrt(int x)的Java实现 #### 概述 本文将详细介绍如何在Java中实现一个计算整数平方根的函数`sqrt(int x)`。此函数旨在求解给定非负整数`x`的平方根,并返回其整数部分。为了达到这一目标,采用了一...
在这个案例中,我们的目标是计算 sqrt(x^2 + y^2),即笛卡尔坐标的欧几里得距离,以及 atan(y/x),即角度 θ。这个算法基于迭代过程,每次迭代都涉及到向量的微小旋转,这些旋转可以通过位移操作轻松实现,因此它在...
摘要:编码重点是在启发式解决方案的C语言中使用p系列评估f(x)= sqrt(x)的实现。 所有这些都是针对大学工程师项目的。 一些启发代码的系列(实现这一近似的系列) 为了系列: (I)比Sávio教授给我们的剧集...
具体到平方根的计算,牛顿迭代法利用了方程x^2-a=0,在每一步迭代中,通过计算函数在x处的切线与x轴的交点来更新x值,从而逼近真实的平方根。这种迭代方式比起二分法,在速度和效率上都有显著提升,但仍不能与系统...
public float sqrt(float x) { long ix = Float.floatToRawIntBits(x); if (ix ) { return -Float.intBitsToFloat((-ix >> 1) + ((-ix & 1) )); // 处理负数的情况 } int scaledX = (int)(x * 256); // 将...
### q_sqrt的分析 #### 背景与概述 在过去的几年里,关于快速逆平方根函数(fast inverse square root function)的起源及其工作原理一直备受关注。此算法首次出现在Quake游戏引擎的源代码中,并因其高效性而迅速...
X^2和X^3表示平方和立方运算,是幂运算的一部分。在计算机程序中,这些可以通过指数运算符(如`**`或`^`)实现。更一般的形式是X^Y,这允许用户计算任意两个数值的幂,这对于科学计算和几何问题非常有用。 sqrt函数...
实时控制器中的倒数计算在计算上非常昂贵。 倒数的牛顿-拉夫森近似以牺牲精度为代价节省了计算成本。 如果计算输入信号的倒数,并且信号本身从一个执行周期到下一个执行周期的变化有限,则先前计算的 Newton-Raphson...
(sqrt x)-平方根,如果可能的话精确 (exact-integer-sqrt k)返回平方根的底数和“余数” 更多文档字符串文档。 发布和依赖项信息 最新稳定版本:0.0.4 依赖项信息: org.clojure/math.numeric-tower { :mvn/...
c语言sqrt函数的用法 sqrt函数用于计算一个非负实数的平方根。 sqrt的函数原型: 在VC6.0中的math.h头文件的函数原型为double sqrt(double); ... result = sqrt(x); //result*result = x printf(Th
sqrt(x [,opts]) 计算元素级主。 x可以是number , array ,typed array或matrix 。 var matrix = require ( 'dstructs-matrix' ) ,data ,mat ,out ,i ;out = sqrt ( 9 ) ;// returns 3out = sqrt ( - 9 ) ;// ...
double sqrt_x = sqrt(x); printf("The square root of %.2f is %.2f\n", x, sqrt_x); return 0; } ``` 上述代码将计算16的平方根并输出结果。注意,sqrt()函数返回的是double类型,因为它可以处理任意大小的...