dpokatski 80dcdc3d8c lab5 9 miesięcy temu
..
readme.md 80dcdc3d8c lab5 9 miesięcy temu
task1.cs 80dcdc3d8c lab5 9 miesięcy temu
task2.cs 80dcdc3d8c lab5 9 miesięcy temu
task3.cs 80dcdc3d8c lab5 9 miesięcy temu
task4.cs 80dcdc3d8c lab5 9 miesięcy temu
task5.cs 80dcdc3d8c lab5 9 miesięcy temu

readme.md

Lab 5

Задача 691. Номера автобусов

Решение:

string[] valid = { "A", "B", "C", "E", "H", "K", "M", "O", "P", "T", "X", "Y" };
Console.WriteLine("Введите номер автобуса:");
while (true)
{
string input = Console.ReadLine();

if (string.IsNullOrEmpty(input))
{
break;
}

if (input.Length != 6)
{
Console.WriteLine("Неверный формат номера.");
continue;
}

string a = input.Substring(0, 1);
string b = input.Substring(4, 2);
string c = input.Substring(1, 3);

if (!valid.Contains(a) || !valid.Contains(b.Substring(0, 1)) || !valid.Contains(b.Substring(1, 1)))
{
Console.WriteLine("Неверный формат номера.");
continue;
}

if (!int.TryParse(c, out int parsedDigits))
{
Console.WriteLine("Неверный формат номера.");
continue;
}

Console.WriteLine("Номер автобуса соответствует стандарту.");
}

Вывод:

Введите номер автобуса:
A658OP
Номер автобуса соответствует стандарту.
G8HHoP
Неверный формат номера.

Задача 950. Сжатие бинарных последовательностей

Решение:

Console.WriteLine("Введите бинарную последовательность:");
string a = Console.ReadLine();
StringBuilder b = new StringBuilder();

for (int i = 0; i < a.Length; i++)
{
int count = 1;

while (i + 1 < a.Length && a[i] == a[i + 1])
{
count++;
i++;
}

if (a[i] == '0')
{
b.Append('a', count);
}
else
{
char compressedChar = (char)('a' + count - 1);
b.Append(compressedChar);
}
}
Console.WriteLine($"Сжатая последовательность: {b}");

Вывод:

Введите бинарную последовательность:
000000111001101100
Сжатая последовательность: aaaaaacaababaa

Задача 44. Стрелки

Решение:

Console.WriteLine("Введите последовательность символов:");
string a = Console.ReadLine();
int b = 0;

for (int i = 0; i < a.Length - 4; i++)
{
if (a.Substring(i, 5) == ">>-->")
{
b++;
}
else if (a.Substring(i, 5) == "<--<<")
{
b++;
}
}
Console.WriteLine($"Количество стрел: {b}");

Вывод:

Введите последовательность символов:
>>-->>--><--<<<
Количество стрел: 3

Задача 95. Нумеролог

Решение:

static void Main()
{
Console.WriteLine("Введите время жизни человека в секундах:");

long a = long.Parse(Console.ReadLine());
int b = GetDigitSum(a);
int c = 1;

while (b >= 10)
{
b = GetDigitSum(b);
c++;
}
Console.WriteLine($"Полученная цифра: {b}");
Console.WriteLine($"Количество операций: {c}");
}

static int GetDigitSum(long number)
{
int b = 0;

while (number > 0)
{
b += (int)(number % 10);
number /= 10;
}
return b;
}

Вывод:

Введите время жизни человека в секундах:
36000
Полученная цифра: 9
Количество операций: 1

Задача 693. Перестановка

Решение:

Console.WriteLine("Введите первое слово:");
string x = Console.ReadLine().ToLower();

Console.WriteLine("Введите второе слово:");
string y = Console.ReadLine().ToLower();

bool isEqual = Enumerable.SequenceEqual(x.OrderBy(e => e), y.OrderBy(e => e));
if (isEqual)
{
    Console.WriteLine("Yes");
}
else
{
    Console.WriteLine("No");
}

Вывод:

Введите первое слово:
TomMarvoloRiddle
Введите второе слово:
IamLordVoldemort
Yes