Methods and Debugging - Exercices > 08. Center Point
С това решение на Methods and Debugging - Exercices > 08. Center Point ми дава 1-ви, 2-ри и 3-ти тест грешни...
Някой може ли да ми каже къде греша и как мога да си поправя грешката? Благодаря предварително :)
using System;
using System.Collections.Generic;
namespace CenterPoint
{
class Program
{
static void Main()
{
int x1 = int.Parse(Console.ReadLine());
int y1 = int.Parse(Console.ReadLine());
int x2 = int.Parse(Console.ReadLine());
int y2 = int.Parse(Console.ReadLine());
string centerPoint = "(" + string.Join(", ", FindClosest(x1, x2, y1, y2).ToArray()) + ")";
Console.WriteLine(centerPoint);
}
static List<int> FindClosest(int x1, int x2, int y1, int y2)
{
List<int> numbers = new List<int>();
if (Math.Abs(x1) >= Math.Abs(x2))
{
numbers.Add(x2);
}
else if (Math.Abs(x1) < Math.Abs(x2))
{
numbers.Add(x1);
}
if (Math.Abs(y1) >= Math.Abs(y2))
{
numbers.Add(y2);
}
else if (Math.Abs(y1) < Math.Abs(y2))
{
numbers.Add(y1);
}
return numbers;
}
}
}
И като цяло е най- лесно да се направи по Питагорова теорема. Като приемеш че двойките числа ти дават една точка в равнината, при която пускане на пряка отсечка към центъра е логично най- късата дистанция. И можеш да направиш проверка от рода на:
Мерси за помоща :) Принципно не съм много добър по математика и май там е проблема :)
а ако точката лежи на координатната система?