[Homework] C# Basics - Operators and Expressions - Problem{10} - Point Inside a Circle & Outside of a Rectangle
Здравейте,
как сте решили тази задача. При (x*x) + (y*y) <= (1.5*1.5)raduis не проверява вярно тъй като окръжността е изместена {1, 1}
Здравейте,
как сте решили тази задача. При (x*x) + (y*y) <= (1.5*1.5)raduis не проверява вярно тъй като окръжността е изместена {1, 1}
Здравейте, ето и моето решение. Сравнително кратко е:
using System;
class PointInCircleOutRectangle
{
static void Main()
{
decimal x = decimal.Parse(Console.ReadLine());
decimal y = decimal.Parse(Console.ReadLine());
decimal r = 1.5M;
bool inKoutR = ( ((x-1)*(x-1)) + ((y-1) * (y-1)) ) <= (r * r) && y > 1;
Console.WriteLine(inKoutR ? "yes":"no");
}
}
Я, още някой мисли като мене... :-)
Моят код е малко по-дълъг единствено с цел прегледност, но като алгоритъм е същият:
class PointInCircleOutOfRectangle
{
static void Main()
{
Console.Write("x= ");
double x = double.Parse(Console.ReadLine());
Console.Write("y= ");
double y = double.Parse(Console.ReadLine());
double shadowX = x - 1;
double shadowY = y - 1;
double circleRadius = 1.5;
double pointPosition = Math.Sqrt(shadowX * shadowX + shadowY * shadowY); // pointPosition defines the distance from the point to the center of the circle
bool insideCircle = (pointPosition <= circleRadius);
// Console.WriteLine(insideCircle);
bool result = (pointPosition <= 1.5 && y > 1);
Console.WriteLine("Is the point within the circle and out of the rectangle?");
Console.WriteLine(result ? "Yes" : "No");
}
}