среда, 26 декабря 2018 г.

Олімпіадні задачі

Квадратний корінь

Знайдіть таке число x, що x2 + SQRT(x) = C з точністю не менше 6 знаків після крапки. Через SQRT(x) позначено корінь квадратний числа x.

1206

f91

МакКарті - відомий теоретик комп'ютерних наук. У одній зі своїх праць він визначив рекурсивну функцію f91, яка визначена для довільного натурального числа n наступним чином:
Якщо n ≤ 100, то f91(n) = f91(f91(n + 11));
Якщо n ≥ 101, то f91(n) = n - 10.
Вхідні дані
Натуральне число n, не більше за 1000000.
Вихідні дані
Значення f91(n).
Вхідні дані
Sample 1
500

Sample 2
91
Вихідні дані
Sample 1
490

Sample 2
91

Прямокутник

prb7379Знаючи координати трьох вершин прямокутника на координатній площині, визначити координати четвертої вершини.
Вхідні дані: В одному рядку записані шість чисел – координати трьох вершин прямокутника. Числові значення цілі, по модулю не більші 100.
Вихідні дані: Два цілих числа - координати четвертої вершини прямокутника.
Вхідні дані
-2 3 4 3 4 -1 
Вихідні дані
-2 -1

Подсчитать буквы

Задана строка s и буква c. Сколько раз буква встречается в строке?

Входные данные

Первая строка содержит строку s с не более чем 100 символами. Вторая строка содержит прописную букву латинского алфавита c.

Выходные данные

Выведите сколько раз буква c встречается в строке s. Одна и та же заглавная и прописная буква считаются одинаковыми. То есть'a' и 'A' считаются одинаковыми буквами.

Четные отрицательные в матрице

Задана матрица размера n * n. Найдите количество и сумму ее четных отрицательных чисел.

Входные данные

Первая строка содержит число n (1 ≤ n ≤ 100). Следующие строки содержат матрицу n * n. Элементы матрицы по модулю не больше 100.

Выходные данные

Выведите в одной строке количество и сумму четных отрицательных чисел в матрице.
Вхідні дані #1
3
4 -2 5
1 -4 -12
0 1 -3

Модуль максимального

Задана послідовність дійсних чисел. Обчислимо їх модулі. Знайдіть максимальне значення серед цих модулей.

Вхідні дані

У першому рядку задано кількість елементів n (n ≤ 100) у послідовності. У наступному рядку задано n дійсних чисел - елементи послідовності, значення яких не первищують за модулем 100.

Вихідні дані

Виведіть максимальне значення серед цих модулей з 2 десятковими знаками.
Вхідні дані #1
5
6 7.5 2.1 2.0 0

Вихідні дані #1
7.50

Турнір

Два гравці влаштували між собою турнір з дартсу. Турнір являє собою серію, яка складається з n ігор. У кожній грі учасники виконують деяку кількість кидків, набираючи очки. Гра вважається виграною тим з гравців, який набрав у ній очок більше, ніж суперник. Якщо ж гравці набрали порівну очок у грі, то її результат вважається нічийним. Пореможцем турніру оголошується той, хто отримав більше всього перемог.
Напишіть програму, яка визначить переможця турніру.

Вхідні дані

У першому рядку задано натуральне число n (1 ≤ n ≤ 1000) - кількість ігор у турнірі. У кожному з наступних n рядків задаються по два числа - кількість очок, набраних першим та другим гравцем відповідно. Усі числа є невід'ємними цілими, які не перевищують 1000.

Вихідні дані

Виведіть число 1, якщо переможцем турніру є перший гравець, 2 - у випадку перемоги другого гравця, і 0 - якщо турнір не виявив переможця.
Вхідні дані #2
2
1 1
0 5
Вихідні дані #2
2

Довга сума

Задано два цілих невід'ємних числа: m і n. Знайти їх суму.

Вхідні дані

У першому рядку міститься m, у другому n (0 ≤ mn < 1030000).

Вихідні дані

Вивести суму без пропусків і ведучих нулів.

Стойкое число

По числу x определим p(x) как произведение его цифр. Рассмотрим последовательность xp(x), p(p(x))... Стойкостью x назовем индекс (начиная с 0) первого однозначного числа в этой последовательности. Например, из 99 получим последовательность 999 * 9 = 818 * 1 = 8. Стойкость числа 99 равна 2. По заданному числу n определите его стойкость.

Входные данные

Каждая строка содержит одно целое число n (0 ≤ n ≤ 2 * 109).

Выходные данные

Для каждого значения n выведите в отдельной строке его стойкость.
Вхідні дані #1
99
268
6
Вихідні дані #1
2
4
0

Затятий колекціонер метеликів

Як відомо, Андрій Сергійович - затятий колекціонер метеликів. Він має величезну колекцію, експонати якої зібрані зі всього світу. Будемо вважати, що в світі існує 2000000000 видів метеликів.
Щоб не заплутатися, Андрій Сергійович присвоїв кожному виду унікальний номер. Нумерація метеликів завжди починається з одиниці. Тепер він хоче знати, чи є метелик з видом k у його колекції, або ж метелика доведеться добувати, витрачаючи безліч сил і грошей.

Вхідні дані

У першому рядку міститься кількість видів метеликів n (1 ≤ n ≤ 100000) у колекції Андрія Сергійовича. У наступному рядку знаходяться nупорядкованих за зростанням чисел - номери видів метеликів у колекції. Всі види метеликів у колекції мають різні номери.
У третьому рядку записано кількість видів метеликів m (1 ≤ m ≤ 100000), про яких Андрій Сергійович хоче дізнатися, чи є вони у нього в колекції або ж ні. В останньому рядку містяться m чисел - номери видів метеликів, наявність яких необхідно перевірити.

Вихідні дані

Вивести m рядків. Для кожного запиту виведіть "YES", якщо метелик із заданим номером міститься у колекції, і "NO" у протилежному випадку.
Вхідні дані #1
7
10 47 50 63 89 90 99
4
84 33 10 82
Вихідні дані #1
NO
NO
YES
NO

вторник, 4 декабря 2018 г.

1


Чотиризначне число називається числом Армстронга, якщо сума четвертого ступеня його цифр рівна самому числу. Наприклад 8208 = 84 + 24 + 04 + 84 є чисел Армстронга. Виведіть всі числа Армстронга від а до б.

Вхідні дані
Два цілих числа a та b (1000 ≤ a ≤ b ≤ 9999).

Вихідні дані
Виведіть в одному рядку всі числа Армстронга від а до б.

Підрахуйте, скільки міститься у файлі символів, строк и слів.

вторник, 6 ноября 2018 г.

Задачі

Визначити, чи є рядок паліндромом.

Паліндром - це число, слово або фраза, однаково читаються в обох напрямки.
Опис змінних:

s - рядок;
f - прапор.

Алгоритм рішення задачі:

Брати черговий символ з початку рядка і порівнювати його з протилежним.
Якщо символи не рівні, то видати повідомлення "не паліндром", змінити значення прапора і зупинити порівняння.
Якщо значення прапора не було змінено, то видати повідомлення "паліндром".


В одновимірному масиві знайти мінімальний і максимальний елементи. Обчислити їх різницю.

Наприклад, дано масив [3, 5, 9, 4, 2, 6]. Максимальним числом є 9, мінімальним є 2. Різниця становить 9-2 = 7.
В даному випадку мінімум і максимум можна шукати за індексом і за значенням.

Розглянемо спочатку пошук за значенням: нехай в змінні min і max записуються відповідно значення мінімального і максимального елементів. До циклу їм треба привласнити такі значення, які виходять за межі діапазону масиву. При цьому змінна max повинна отримати значення, що виходить за нижню межу (менше можливого), а min - за верхню межу (більше можливого).

Будемо в циклі перебирати елементи масиву і порівнювати їх значення з min і max. Якщо черговий елемент більше max, то дамо його значення змінної max. Якщо менше значення змінної min, то дамо min. При цьому якщо перша умова "спрацювало", то нема чого перевіряти друге. Тому слід використовувати else, в яке вкладено другий if.

Після циклу, щоб відповісти на питання завдання, треба з max відняти min. Результат вивести на екран.
В одновимірному масиві видалити всі парні елементи і залишити тільки непарні.

Скопіювати в інший масив тільки непарні елементи.
З натурального числа видалити задану цифру. Число і цифру вводити з клавіатури.

Наприклад, задано число 5683. Потрібно видалити з нього цифру 8. Вийде число 563.
Завдання ускладнюється тим, що заздалегідь невідомо кількість розрядів числа. Тому вихідне число простіше почати перевіряти з кінця за допомогою оператора mod (знаходження залишку від ділення). Ділити треба на 10, щоб отримати останню цифру числа.

Якщо остання цифра не збігається з цифрою, яку потрібно видалити, то її треба перенести в інше число, перед цим зсунувши його розряди. Легше реалізувати, щоб нове число формувалося навпаки: старші розряди вихідного будуть молодшими.

Після того, як задана цифр буде видалена, число знову перевертається.

четверг, 25 октября 2018 г.

E-olymp C#

1024
РОБИМО САМОСТІЙНО

4805

Равносторонний треугольник

Найдите периметр и площадь равностороннего треугольника.

Входные данные

Одно целое число - длина стороны n (1 ≤ n ≤ 1000) равностороннего треугольника.

Выходные данные

Выведите в одной строке периметр и площадь равностороннего треугольника с 4 десятичными знаками
Вхідні дані #2
8
Вихідні дані #2
24.0000 27.7128


8321

Послідовність - 1

Вивести на екран послідовність чисел. Рахуємо, що n - номер варіанту.
n=1 : 0 1 2 3 4 5 6 7 8 9
n=2 : 1 2 3 4 5 6 7 8 9 10
n=3 : 2 4 6 8 10 12 14 16 18 20
n=4 : 1 3 5 7 9 11 13 15 17 19
n=5 : 5 10 15 20 25 30 35 40 45 50
n=6 : 9 8 7 6 5 4 3 2 1 0

Вхідні дані

Одне число n, 1 ≤ n ≤ 6

Вихідні дані

Виведіть числа послідовності

8322
РОБИМО САМОСТІЙНО


8532

Печать квадратов и кубов

Заданы два целых числа a и b. Выведите квадраты и кубы всех целых чисел от a до b включительно.

Входные данные

Два целых числа a и b (0 ≤ a ≤ b ≤ 10000).

Выходные данные

В первой строке выведите квадраты всех целых чисел от a до b включительно по возрастанию. Во второй строке выведите кубы всех целых чисел от a до b включительно по убыванию.
Вхідні дані #1
5 10
Вихідні дані #1
25 36 49 64 81 100 
1000 729 512 343 216 125 


271

Факторіал!

Знайти значення факторіалу цілого числа n.

Вхідні дані

Одне ціле число n (0 ≤ n ≤ 3000).

Вихідні дані

Виведіть факторіал числа n.
8609

Рекурсия - 1

Реализуйте рекурсивную функцию:
prb8609.gif

Входные данные

Одно целое число n (0 ≤ n ≤ 1000).

Выходные данные

Выведите значение f(n).
Вхідні дані #1
5
Вихідні дані #1
15
2292

Число Фібоначчі

Визначимо числа Фібоначчі наступним чином:
F (1) = F (2) = 1
F (n) = F (n - 1) + F (n - 2) для n ≥ 3.
Обчислити n-те число Фібоначчі.

Вхідні дані

У першому рядку задано кількість тестів t (1 ≤ t ≤ 103). У кожному з наступних t рядків міститься одне число n (1 ≤ n ≤ 104).

Вихідні дані

Для кожного тесту виведіть в окремому рядку відповідне число Фібоначчі.
Вхідні дані #1
5
1
2
3
4
5
Вихідні дані #1
1
1
2
3
5

II спосіб

    public static BigInteger Fib(BigInteger n)
        {
            if (n == 0)
            {
                return 0;
            }
            if (n == 1)
            {
                return 1;
            }
            if (n == 2)
            {
                return 1;
            }

            else
            {
                return Fib(n - 1) + Fib(n - 2);
            }
        }
        static void Main(string[] args)
        {

            string s = Console.ReadLine();
            var m = s.Split(' ');
            int t = int.Parse(m[0]);

            
            int[] indeks = new int[t];
            
            for (int i = 0; i < t; i++)
            {
                indeks[i] = int.Parse(Console.ReadLine());
                Console.WriteLine(Fib(indeks[i]));
            }


948

Площа та об`єм піраміди

Сторона основи правильної чотирикутної піраміди d, бічне ребро p. Визначити площу повної поверхні та об'єм піраміди.
    Вхідні дані
    У єдиному рядку через пропуск основа та бічне ребро. Вхідні дані не перевищують 100.
    Вихідні дані
    Через пропуск шукані площа та об'єм, результат вивести з точністю до тисячних.
    Вхідні дані #1
    20 15
    
    Вихідні дані #1
    847.214 666.667
    4718
    Напишіть програму, яка вітає користувача, виводячи слово Hello, ім'я користувача та розділові знаки у наступному вигляді: Hello, Harry
    Вхідні дані
    У єдиному рядку вводиться ім'я користувача.
    Вихідні дані
    У першому рядку виведіть привітання.
    Вхідні дані
    Sample 1
    Harry
    
    Sample 2
    Peter
    
    Вихідні дані
    Sample 1
    Hello, Harry
    
    Sample 2
    Hello, Peter
    
    
    1607

    Число у зворотньому порядку

    Записати ціле невід'ємне число n у зворотньому порядку.

    Вхідні дані

    Одне ціле невід'ємне 64-х розрядне число.

    Вихідні дані

    Запис числа у зворотньому порядку.
    Вхідні дані #1
    1234
    
    Вихідні дані #1
    4321
    
    
    
    

    четверг, 11 октября 2018 г.

    c#

    Визначити число і суму елементів, розташованих усередині відрізка [а, в], знайти суму непарних елементів масиву
    Для кожного стовпця порахувати суму парних позитивних елементів і записати дані в новий масив

    Виручка театру 4749

    У театрі n рядів по m місць у кожному. Задано дві матриці - у першій записано вартості квитків. Друга повідомляє, які квитки продано, а які - ні (1 - відповідний квиток продано, 0 - не продано).
    Визначіть загальну виручку від спектакля.
    Вхідні дані
    Спочатку записано спочатку число n, потім число (nm ≤ 500). Потім задано матрицю вартості квитків (n рядків по m чисел, кожне з чисел від 0 до 10000). Далі задано матрицю проданих квитків - знову n рядків по m чисел.
    Вихідні дані
    Виведіть загальну виручку від продажі квитків.
    Вхідні дані #1
    3 3
    1 2 3
    4 5 6
    7 8 9
    
    1 0 1
    0 1 0
    1 0 1
    
    Вихідні дані #1
    25

    Сортування

    Відсортуйте масив цілих чисел у порядку незростання.

    Вхідні дані

    Перший рядок містить число n (1 ≤ n ≤ 1000), другий рядок - n цілих чисел, які за модулем не перевищують 2 * 109.

    Вихідні дані

    Вивести задані числа у порядку незростання.
    Вхідні дані #1
    5
    9 2 7 1 2
    
    Вихідні дані #1
    9 7 2 2 1 
    
    
    
    


    четверг, 4 октября 2018 г.

    c# Практика

    Табулювання функції

    Написати програму, яка виводить на екран табличку значень функції y=3·sin(x) на проміжку від a до b з кроком h.
    Вхідні дані
    В одному рядку задано 3 дійсних числа - ab та h, записані через пропуск.
    Вихідні дані
    В кожному рядку вивести по 2 числа - x та y відповідно за зростанням x, з точністю 3 знаки після коми.
    Вхідні дані #1
    1 2 0.5
    
    Вихідні дані #1
    1.000 2.524
    1.500 2.992
    2.000 2.728

    Відношення добутку до суми

    Обчислити відношення добутку цифр натурального числа до їх суми.
    Вхідні дані
    Натуральне число n,що не перевищує 2·109.
    Вихідні дані
    Вивести відношення добутку цифр числа n до їх суми
    з 3 десятковими цифрами.
    Ввести з клавіатури будь-яких символів. Скільки серед  них „+”? Скільки серед них „–”?
    Дано: n – кількість введених символів та самі символи.
    Знайти: підрахувати окремо плюси та мінуси.
    Ввести з клавіатури будь-яких символів. Скільки серед них маленьких російських літер?
    Дано: n – кількість введених символів та самі символи.
    Знайти: підрахувати маленькі російські літери.