C语言——leetcode69——X的平方根
我将解析 及题目都放在了代码中 方便大家阅读
//69. x 的平方根
//给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
//
//由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
//
//注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x * *0.5 。
//
//
//
//示例 1:
//
//输入:x = 4
//输出:2
//示例 2:
//
//输入:x = 8
//输出:2
//解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。//常规思路就是数学中的开放 开完之后就是两个相同的数的乘积 等于X#include<stdio.h>int Sqrt(int x)
{long i = 0;//int最大上限不能够容纳 避免栈溢出while (i * i <= x){i++;}return i - 1;//当i最后一次进去时肯定是大于X的所以应该减一才是要返回的
}int main()
{int n = 0;printf("请输入一个非负数>");scanf("%d", &n);int a = Sqrt(n);printf("%d \n", a);return 0;
}
![](/assets/blank.gif)
由于该题目中 条件是有序数组 查找一个数这个数接近X平方根的正整数 所以“二分查找法”也适用于该题目
//二分查找法int Sqrt(int x)
{int l = 0, r = x,ans = 0;while (l <= r){int mid = l + (r - l) / 2;if ((long)mid * mid > x)//防止栈溢出{r = mid - 1;}else{//因为该语块是<= 这里面才有我们想要的值 如果mid正是我们想要的 再经过下一次二分查找时就找不见了ans = mid;l = mid + 1;}}return ans;
}int main()
{int n = 0;printf("请输入一个非负数>");scanf("%d", &n);int a = Sqrt(n);printf("%d \n", a);return 0;
}
![](/assets/blank.gif)
二分查找还可以在范围上优化 将右端范围缩小 r = X / 2 + 1;
因为“/”向下取整 所以加一避免漏掉目标值
如‘1’的开方就是‘1’ 如果不加1 l = r = 0;就出错了
还有许多方法可以求解,知识有限,很抱歉
加油铁汁~
C语言——leetcode69——X的平方根相关推荐
- 迭代公式求平方根c语言程序设计,迭代法求平方根C语言实验报告
与<迭代法求平方根C语言实验报告>相关的范文 西安交通大学实验报告 课程_ c++ __ 实验名称_迭代公式求平方根_ 第1页 共2页 系 别__ 土木工程 ____ 实 验 日 期 20 ...
- 4、leetcode69 x的平方根**
leetcode 69 x的平方根 给你一个非负整数 x ,计算并返回 x 的 平方根 . 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 . 注意:不允许使用任何内置指数函数和算符, ...
- leetcode69. x 的平方根(二分法)
实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 代码 ...
- LeetCode69. x 的平方根(二分查找)
题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 思路 详见链接 代码 class ...
- c语言中用递归求平方根,下列给定程序中,函数fun()的功能是:应用递归算法求某数a的平方根。求平方根的迭代公式如下: 例如 - 赏学吧...
下列给定程序中,函数fun()的功能是:应用递归算法求某数a的平方根.求平方根的迭代公式如下: 例如,2的平方根为1.414214. 请改正程序中的错误,使它能得出正确的结果. 注意:不要改动main ...
- C语言n层嵌套平方根的计算n
题目内容: 编写程序利用递归法实现如下所示n层嵌套平方根的计算: 递归函数原型:double Y(double x, int n): 程序运行结果示例1: Please input x and n:1 ...
- C语言:习题2-5 求平方根序列前N项和.2021-08-02
习题2-5 求平方根序列前N项和 (15 point(s)) 本题要求编写程序,计算平方根序列1+2+3+⋯的前N项之和.可包含头文件math.h,并调用sqrt函数求平方根. 输入格式: 输入 ...
- c语言浮点数高精度求平方根,快速高精度的二进制浮点数开平方算法
1引盲开平方运算在用徽机.单片机等构成的实时控制系统和测量仪器中有着广泛的应用.开平方运算的实现方法有多种:如牛顿迭代法.查表法.直线逼近法(线性化方法)和减奇数法等.对于查表法,当被开方数变化范围较 ...
- Leetcode69 x的平方根(简单篇)
题目如下: 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: ...
最新文章
- 正则表达式grep、egrep--already
- 动态规划备忘录方法Java_动态规划和备忘录法的区别
- 洛谷P2679 子串
- 得到的概率值_论文推荐|屋面钢梁在超强意外雪荷载作用下的失效概率
- java状态模式例子答案_[转载]java设计模式_状态模式(带例子)
- 吴恩达的 CS229,有人把它浓缩成 6 张中文速查表!
- linux libbz2.so.1,libbz2.so.1.0: cannot open shared object file: No such file or directory
- pep8 python 编码规范_编码规范的重要性
- row_number()over函数的使用(转)
- G++和C++区别和评测注意事项
- C++第五章课后习题16-字符串按逆序输出
- 订单发货的存储过程mysql_一个订单相关的存储过程(MySQL)
- protues仿真闪退问题,亲测有效
- 浅谈公安350兆集群通信网建设
- 微信 服务器参数错误 请重新填写,微信上登录验证出现参数错误怎么解决
- 笔记本上怎么怎么暂停cmd打印窗口
- Mstar 648 平台遥控器/按键包POWER键配置
- MATLAB中图像索引和抖动转换
- Vue # Avoid mutating a prop directly since the value will be overwritten wheneve
- 家电售后APP软件开发作用特点