Сколько можно построить отрезков на данном множестве, параллельных оси OX - C#
Формулировка задачи:
Сколько можно построить отрезков на данном множестве, параллельных оси OX?
Решение задачи: «Сколько можно построить отрезков на данном множестве, параллельных оси OX»
textual
Листинг программы
using System;
namespace cyb20 {
class Vector {
//Свойства
public double X { get; set; }
public double Y { get; set; }
//Методы
public static Vector operator -(Vector u, Vector w) {
return new Vector() {
X=u.X-w.X,
Y=u.Y-w.Y
};
}
public override string ToString() {
return string.Format("({0},{1})",X,Y);
}
}
class Program {
static void Main() {
//Делаем массив векторов, указывающих на точки
Vector[] m= {
new Vector(){ X=1, Y=2 },
new Vector(){ X=4, Y=3 },
new Vector(){ X=5, Y=6 },
new Vector(){ X=15, Y=6 },
new Vector(){ X=7, Y=-6 },
new Vector(){ X=8, Y=7 },
new Vector(){ X=9, Y=10 },
};
//Пройдемся по массиву, строя всевозможные векторы на основе отрезков
int l=m.Length;
int cnt=0;
for (int i=0; i<l-1; i++)
for (int j=i+1; j<l; j++)
if ((m[j]-m[i]).Y==0)
cnt++;
Console.WriteLine("Можно построить {0} отрезков, параллельных оси OX", cnt);
Console.ReadLine();
}
}
}