Сколько можно построить отрезков на заданном множестве точек, имеющих различную длину? - C#
Формулировка задачи:
Дано множество точек на плоскости. Сколько можно построить отрезков на данном множестве, имеющих различную длину?
Решение задачи: «Сколько можно построить отрезков на заданном множестве точек, имеющих различную длину?»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication244 { public partial class Form1 : Form { public Form1() { InitializeComponent(); var points = new PointF[] {new PointF(1, 2), new PointF(1, 3), new PointF(3, 3), new Point(3, 2)}; var count = CalcSegmentCount(points); Console.WriteLine(count); } private int CalcSegmentCount(PointF[] points) { var lengthes = new HashSet<float>(); for(int i=0;i<points.Length;i++) for(int j=0;j<points.Length;j++) if(i != j) { var p1 = points[i]; var p2 = points[j]; var seg = new PointF(p1.X - p2.X, p1.Y - p2.Y); var len = Math.Sqrt(seg.X * seg.X + seg.Y * seg.Y); var lenF = (float)Math.Round(len, 3);//округляем длину отрезка до трех знаков после запятой lengthes.Add(lenF); } return lengthes.Count; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д