Сколько можно построить отрезков на заданном множестве точек, имеющих различную длину? - 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;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы