【深基7.例1】距离函数
题目描述
给出平面坐标上不在一条直线上三个点坐标 $(x_1,y_1),(x_2,y_2),(x_3,y_3)$,坐标值是实数,且绝对值不超过 100.00,求围成的三角形周长。保留两位小数。
对于平面上的两个点 $(x_1,y_1),(x_2,y_2)$,则这两个点之间的距离 $dis=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$
输入格式
输入三行,第 $i$ 行表示坐标 $(x_i,y_i)$,以一个空格隔开。
输出格式
输出一个两位小数,表示由这三个坐标围成的三角形的周长。
样例 #1
样例输入 #1
0 0
0 3
4 0
样例输出 #1
12.00
提示
数据保证,坐标均为实数且绝对值不超过 $100$,小数点后最多仅有 $3$ 位。
package main
import (
"fmt"
"math"
)
type Point struct {
X, Y float64
}
func (p Point) distanceTo(other Point) float64 {
return math.Sqrt(math.Abs((p.X-other.X)*(p.X-other.X)) + math.Abs((p.Y-other.Y)*(p.Y-other.Y)))
}
func main() {
var p1, p2, p3 Point
fmt.Scan(&p1.X, &p1.Y, &p2.X, &p2.Y, &p3.X, &p3.Y)
c := p1.distanceTo(p2) + p2.distanceTo(p3) + p3.distanceTo(p1)
fmt.Printf("%.2f", c)
}