понедельник, 24 сентября 2018 г.

c# Множини


Цікава забава Юри
На уроці інформатики Юрі стало дуже сумно, тому він придумав собі забаву.
На початку у нього є порожня множина. На кожному наступному етапі він придумує число і перевіряє, чи належить воно безлічі. Якщо належить, то Юрій вигукує "Yes". Якщо немає, то він вигукує "No", і додає його в безліч. Перед тим, як загадати нове число, Юра вигукує кількість елементів у множині.
Вчителю набридли крики Юрія, тому він змусив його написати програму, яка кричить замість хлопчика. Але Юра не вміє програмувати, тому попросив допомоги у Вас.
Вхід. У першому рядку задано натуральне число n (1 ≤ n ≤ 105). У кожному з наступних n рядків задано ціле число, яке задумав Юра. Юра вміє загадувати числа тільки на проміжку від -109 до 109.
Вихід. В окремому рядку виведіть то, що викрикував би Юра на кожен запит
Вхідні дані #1
5
1
2
3
4
1
Вихідні дані #1
No 1
No 2
No 3
No 4
Yes 4


https://docs.microsoft.com/ru-ru/dotnet/api/system.collections.generic.hashset-1?redirectedfrom=MSDN&view=netframework-4.7.2



Створити програму, яка дозволяє ввести цілочисельну множину А і створити програмним шляхом нову множину В, кожен елемент якого на 100 менше відповідного елемента множини А.
942

Діагоналі


Чотири точки A(x1y1)B(x2y2)C(x3y3)D(x4y4) є вершинами паралелограма. Визначити довжину діагоналей і знайти координати точки їх перетину.
Вхідні дані
У 4-х рядках через пропуск задані x та y координати послідовних вершин паралелограма, відповідно точок ABC та D. Всі числа по модулю не перевищують 100.
Вихідні дані
У першому рядку вивести через пропуск x та y координати точки O, у другому - довжину діагоналі AC і через пропуск - BD. Результати вивести з точністю до тисячних.
Вхідні дані
4 6
11 6
10 2
3 2
Вихідні дані
7.000 4.000
7.211 8.9


653

Трикутник

У Евклідовій геометрії трикутники можна поділити на три типи на підставі величини їх кутів. Трикутник гострий, якщо всі три кути менше 90градусів. Трикутик тупий, якщо один з кутів більше 90 градусів. Накінець, трикутнник з одним кутом рівним 90 градусів є прямокутним.
Вхідні дані
У єдиному рядку через пропуск записано три додатні цілі числа A,BC- довжини сторін трикутника. (A,B,C 10000)
Вихідні дані
У єдиному рядку слід вивести одне зі слів:
  • "IMPOSSIBLE" – якщо такого трикутника не існує;
  • "ACUTE" – якщо трикутник гострий;
  • "OBTUSE" – якщо трикутник тупий;
  • "RIGHT" – якщо трикутник прямокутний.


 private static int Max(int a, int b, int c)
        {
            int max = a;
            if (b > max) max = b;
            if (c > max) max = c;
            return max;
        }

        private static bool Yoxla(int a, int b, int c)
        {
            if (a == Max(a, b, c))
            {
                return a < b + c;
            }
            if (b == Max(a, b, c))
            {
                return b < a + c;
            }
            if (c == Max(a, b, c))
            {
                return c < a + b;
            }
            return false;
        }

        private static bool Right(int a, int b, int c)
        {
            if (a == Max(a, b, c)) return a * a == b * b + c * c;
            if (b == Max(a, b, c)) return b * b == a * a + c * c;
            if (c == Max(a, b, c)) return c * c == a * a + b * b;
            return false;
        }

        private static string ItiKor(int a, int b, int c)
        {
            if (a == Max(a, b, c))
            {
                if (a * a < b * b + c * c) return "ACUTE";
                return "OBTUSE";
            }
            if (b == Max(a, b, c))
            {
                if (b * b < a * a + c * c) return "ACUTE";
                return "OBTUSE";
            }
            if (c == Max(a, b, c))
            {
                if (c * c < a * a + b * b) return "ACUTE";
                return "OBTUSE";
            }
            return "";
        }
        static void Main(string[] args)
        {
            string setir = Console.ReadLine();
            var massiv = setir.Split(' ');
            int a = int.Parse(massiv[0]);
            int b = int.Parse(massiv[1]);
            int c = int.Parse(massiv[2]);
            if (Yoxla(a, b, c)) Console.WriteLine(Right(a, b, c) ? "RIGHT" : ItiKor(a, b, c));
            else Console.WriteLine("IMPOSSIBLE");
        }

926 

Формула Герона

Задано сторони ab`, cd та діагональ f опуклого чотирикутника. Визначити площу чотирикутника, використовуючи допоміжну функцію обчислення площі трикутника за формулою Герона.

Вхідні дані

В одному рядку задано 5 дійсних чисел abcdf (0 < abcdf ≤ 100), як це показано на рисунку.

Вихідні дані

Вивести площу чотирикутника, обчислену з точністю до 4-х знаків після десяткової крапки.
Вхідні дані #1
3 4 4 2 5
Вихідні дані #1
9.7997
924 

Кільце

Задано площу кільця й радіус зовнішнього кола. Визначити радіус внутрішнього кола.

Вхідні дані

Задано два дійсних числа: площа кільця і радіус зовнішнього кола, шо не перевищує 100.

Вихідні дані

Вивести радіус внутрішнього кола з 2 десятковими знаками.
Вхідні дані #1
50.2655 5
Вихідні дані #1
3.00
ublic static void Main(string[] args)
        {
            string setir = Console.ReadLine();
            var massiv = setir.Split(' ');
            double s = double.Parse(massiv[0]);
            double r1 = double.Parse(massiv[1]);
            double pi = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862;
            double r2 = Math.Sqrt(r1*r1 - s/pi);
            Console.WriteLine("{0:N2}", r2);
        }
518


Сума двох

Знайти суму двох чисел.

Вхідні дані

Перший рядок містить кількість тестів t (1 ≤ t ≤ 100). Кожен тест складається з двох цілих чисел a та b.

Вихідні дані

Для кожного тесту вивести в окремому рядку суму чисел a та b.


Комментариев нет:

Отправить комментарий