๐ Kichik Shahzoda: C# da Sayyoralararo Sayohat Masalasi
Salom, dasturchilar! ๐ Bugun sizlar bilan "Kichik Shahzoda" nomli qiziqarli masalaning C# yechimini ko'rib chiqamiz. Bu masala sayyoralararo sayohat haqida bo'lib, uchta asosiy fayldan iborat: Program.cs
, Point.cs
va Planet.cs
.
๐งฑ Asosiy Strukturalar
๐ Point Strukturasi
public struct Point(int x, int y)
{
public int X { get; set; } = x;
public int Y { get; set; } = y;
// ... boshqa kodlar ...
}
๐ Planet Sinfi
public struct Planet(Point position, int radius)
{
public Point Position { get; set; } = position;
public int Radius { get; set; } = radius;
// ... boshqa kodlar ...
}
๐งฎ Asosiy Algoritm
int n = int.Parse(Console.ReadLine()!);
while(n-- > 0)
{
var s = Console.ReadLine()!.Split().Select(int.Parse).ToArray();
var prince = new Point(s[0], s[1]);
var princess = new Point(s[2], s[3]);
// ... boshqa kodlar ...
}
๐ Qiziqarli Qismlar
- Sayyora ichida ekanligini tekshirish ๐:
public bool IsInside(Point point)
{
var a = point.X - Position.X;
var b = point.Y - Position.Y;
return Math.Sqrt(a * a + b * b) <= Radius;
}
- Kiritishni qayta ishlash โจ๏ธ:
public Planet(string? s) : this(new Point(), 0)
{
if(s == null || s.Split(' ',StringSplitOptions.RemoveEmptyEntries).Length != 3)
throw new ArgumentException("Invalid input format");
// ... boshqa kodlar ...
}
- Yo'l hisoblash ๐งญ:
if(planet.IsInside(prince) ^ planet.IsInside(princess))
count++;
๐ Xulosa
Bu yechim sayyoralararo sayohat masalasini hal qilishning samarali usulini ko'rsatadi.Quyidagi GitHub repostoriyamda dastur kodi joylangan. To'liq kod:
๐ GitHub Repository: Masalaning yechimi
Agar savollaringiz yoki takliflaringiz bo'lsa, izohlar bo'limida qoldiring! ๐ฌ
Top comments (0)