【MySQL】Power 函数、Sqrt 函数、Round 函数的运用

力扣题

1、题目地址

612. 平面上的最近距离

2、模拟表

Point2D 表:

Column NameType
xint
yint
  • (x, y) 是该表的主键列(具有唯一值的列的组合)。
  • 这张表的每一行表示 X-Y 平面上一个点的位置

3、要求

  • p1(x1, y1) 和 p2(x2, y2) 这两点之间的距离是 sqrt((x2 - x1)2 + (y2 - y1)2) 。
  • 编写解决方案,报告 Point2D 表中任意两点之间的最短距离。保留 2 位小数 。

4、示例

输入:

Point2D 表:

xy
-1-1
00
-1-2

输出:

shortest
1.00

解释:

最短距离是 1.00 ,从点 (-1, -1) 到点 (-1, 2) 。

5、代码编写

知识点

Power(2, 3) = 8(2的3次方),第一个参数是数字,第二个参数表示几次方
Sqrt(4) = 2,参数是数字,返回数字的平方根
Round(0.33333, 2) = 0.33,第一个参数是数字,第二个参数表示保留几位小数

代码

SELECT ROUND(
	MIN(
		SQRT(
			POWER((two.x - one.x), 2) + POWER((two.y - one.y), 2)
		)
	)
	, 2
) AS shortest
FROM Point2D one, Point2D two
WHERE (one.x, one.y) != (two.x, two.y)
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值