Плюсануть
Поделиться
Класснуть
Запинить


Олимпиадный тренинг

Вы можете самостоятельно решать эти задачи столько раз, сколько вам это понадобится.
   

Задание 1

Задачи на процедуры и функции

Дополните функцию f(n) таким образом, чтобы программа выводила на экран число 20.

Задание 2

Задачи на процедуры и функции

Дополните функцию f(n) таким образом, чтобы программа выводила на экран число 13.

Задание 3

Задачи на процедуры и функции

Дополните функцию f(n) таким образом, чтобы программа выводила на экран две строки со значениями
100
100


Запрещено создавать новые переменные!

Задание 4

Задачи на процедуры и функции

Дополните функцию f1(n) таким образом, чтобы программа выводила на экран число 119.

Задание 5

Задачи на процедуры и функции

Дополните функции f1(n) и f2(n) таким образом, чтобы программа выводила на экран число 29.

Задание 6

Задачи на процедуры и функции

Программа должна вывести на экран число 75.
Оформите вызов процедуры f1(a, b) в программе.

Сумма дробей

Задачи на процедуры и функции

Программа вычисляет значение выражения
\(ans = {2 + \sqrt{2} \over {5 + \sqrt{5}}} + {5 + \sqrt{5} \over {13 + \sqrt{13}}}+{13 + \sqrt{13} \over {8 + \sqrt{8}}}\).

Для вычисления используется функция drop(a, b), которая вычисляет значение одного слагаемого.
Запишите пропущенную строку в этой функции.

Количество счастливых шестизначных

Задачи на процедуры и функции

Определите количество шестизначных «счастливых» чисел. «Счастливым» будем называть такое шестизначное число, в котором сумма его первых трех цифр равна сумме его последних трех цифр. 
Заполните пропуски в программе.

Функция sum3(n) вычисляет сумму цифр трехзначного числа.
Функция happy(n) определяет является ли число n счастливым. Функция happy(n) для своей работы использует функцию sum3(n).

Замена букв, исключая первую и последнюю

Задачи на процедуры и функции

Программа заменяет в строке s все буквы 'h' на 'H', кроме первого и последнего вхождения. Вставьте пропущенные строки.
 

Примеры
Входные данные Выходные данные
1 In the hole in the ground there lived a hobbit In the Hole in tHe ground tHere lived a hobbit

Строки с гласными и согласными

Задачи на процедуры и функции Строки Символы

Напишите функцию vowels_count, которая принимает строку и подсчитывает количество английских гласных в ней.
Английские гласные буквы: a, e, i, o, u, y.

Используя данную функцию, определите две строки:
s1 - строку с самым большим числом гласных букв (если таких строк несколько, взять ту, которая встретится раньше).
s2 - строку с самым маленьким числом согласных букв (если таких строк несколько, взять ту, которая встретится раньше).


Входные данные
В первой строке подается натуральное число n (1 < n <= 10) - количество строк. Далее идут n строк. Каждая строка состоит из английских маленьких букв и пробелов.

Выходные данные
Выведите на экран две строки: сначала строку s1, затем, с новой строки - s2. Наименьшую из данных строк выровняйте по длине с наибольшей, добавив слева строки символы '*'.
 

Примеры
Входные данные Выходные данные
1 4
mama papa
doughter son
brother sister
grandmama grandpa
grandmama grandpa
********mama papa
 

Вычислите значение многочлена - 1.

Задачи на процедуры и функции Арифметические алгоритмы (Теория чисел)

Вычислите значение многочлена вида: anxn+an-1xn-1+...+a1x+a0 по значениям коэффициентов и значению аргумента.
Входные данные:
1 строка - число N (0<=N<=10000) - степень многочлена
2 строка -
N+1 целое число разделенные пробелом - коэффициенты многочлена an,an-1,...,a1,a0
3 строка - натуральное число
K -  количество значений аргументов (K<=106), для которых надо вычислить значение многочлена
В следующих K строках даны значения аргумента - вещественные числа
Выходные данные:

Вычислите значения многочлена для заданных аргументов. В качестве ответа выведите:
- в 1 строке - аргумент, при котором многочлен принимает минимальное значение. Если таких значений несколько, то выведите минимальное из значений. 
- в 2 строке - значение многочлена для аргумента из 1-й строки. Значение округлите до 0,0000001

ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
2
1 0 0
4
9.0
-11.0
-9.0
16.0
-9.0
81.0
10
7 -7 -4 3 -6 -9 -7 4 0 -9 8
2
0.01
0.0
 
0.01
7.9100039
 

 

Пиксельный экран

Процедуры и функции Задачи на процедуры и функции

Пиксельный экран выводит каждую цифру в виде картинки 3х5.

1 2 3 4 5
 *
 *
 *
 *
 *
***
  *
***
*
***
***
  *
***
  *
***
* *
* *
***
  *
  *
***
*
***
  *
***
6 7 8 9 0
***
*
***
* *
***
***
  *
 *
*
*
***
* *
***
* *
***
***
* *
***
  *
***
***
* *
* *
* *
***

На вход программе подается натуральное число n (n <= 109).

Выведите это число в виде картинки на пиксельном экране. Каждую цифру выводите с новой строки. Порядок цифр должен соответствовать порядку цифр в исходном числе (то есть сначала выводится первая цифры, затем - вторая и т. д.). Если после звездочки (*) в строке больше ничего нет, то пробелы выводить не нужно.

 
 
Примеры
Входные данные Выходные данные
1 12
 *
 *
 *
 *
 *
***
  *
***
*  
***

Минимальный простой делитель

Процедуры и функции Задачи на процедуры и функции

Алиса знает, что если у числа n нет делителя, не превосходящего\(\sqrt n\), то число n - простое и его минимальным простым делителем будет само число n. Вас попросили написать программу, которая будет находить минимальный простой делитель у любого числа.

Решение оформите с использованием функций. Напишите следующие функции:
- функцию isPrime(n), которая будет принимать целое число и возвращать True, если число простое и False - если не простое.
- функцию minDivisor(n), которая будет возвращать минимальный простой делитель.

Основная программа должна содержать ввод числа, вызов функции minDivisor(n) и вывод ответа.

Входные данные
Программа получает на вход натуральное число n > 1.

Выходные данные
Выведите ответ на задачу.
 

Примеры
Входные данные Выходные данные
1 4 2
2 5 5

Код доступа

Процедуры и функции Задачи на процедуры и функции

Алиса решила, что нужно поставить код доступа к управлению кораблем. Она считает, что код доступа должен иметь вид a:b:c, где a, b и c - натуральные числа. Причем, число a должно быть простым, число b - являться палиндромом, а число c - чётным. Капитан Зелёный придумал код.

Вам поручили задание написать программу, которая бы выводила True, если придуманный код доступа соответствует правилам и False - если не соответствует. Чтобы вашу программу можно было применять для других проверок, капитан просит вас оформить программу, с использованием трех функций:
- isPrime(n) - функция, которая определяет является число n простым или нет;
- isPalindrome(n) - функция, которая определяет является ли число n палиндромом;
- isEven(n) - функция, которая определяет является ли число n четным.

Все проверки числа на простоту, палиндром и четность необходимо осуществлять только с использованием данных функций!

Входные данные
Программа получает на вход одну строку - код доступа, который придумал капитан Зелёный.

Выходные данные
Выведите True, если код доступа соответствует правилам Алисы, в противном случае выведите False.
 

Примеры
Входные данные Выходные данные
1 7:101:14 True
2 101:101:101 False
3 qwerty False

Степень

Задачи на процедуры и функции

Напишите функцию double power (double a, int n) (C/C++), function power (a:real; n:longint): real (Pascal), вычисляющую значение an.
Входные данные
Вводится 2 числа - a (вещественное) и n (целое неотрицательное).

Выходные данные
Необходимо вывести  значение an.

Исключающее ИЛИ

Логический тип Задачи на процедуры и функции

Напишите функцию
bool Xor (bool x, bool y) (C/C++),
function _Xor (x, y:boolean): boolean (Pascal),
def xor(x, y):(Python)

реализующую функцию "Исключающее ИЛИ" двух логических переменных x и y. Функция Xor должна возвращать true, если ровно один из ее аргументов x или y, но не оба одновременно равны true.

Входные данные
Вводится 2 числа - x и y (x и y равны 0 или 1, 0 соответствует значению false, 1 соответствует значению true).

Выходные данные
Необходимо вывести 0 или 1 - значение функции от x и y.

Голосование

Логический тип Задачи на процедуры и функции

Напишите "функцию голосования" bool Election(bool x, bool y, bool z) (C/C++), function Election (x, y, z:boolean): boolean (Pascal), возвращающую то значение (true или false), которое среди значений ее аргументов x, y, z встречается чаще.

Входные данные
Вводится 3 числа - x, y и z (x, y и z равны 0 или 1, 0 соответствует значению false, 1 соответствует значению true).

Выходные данные
Необходимо вывести  значение функции от x, y и z.

Быстрое возведение в степень

Рекурсия Задачи на процедуры и функции

Напишите функцию быстрого возведения в степень. Количество действий должно быть пропорционально двоичному логарифму n.

Входные данные
Вводится 2 числа - a (вещественное) и n (целое неотрицательное).

Выходные данные
Необходимо вывести  значение an.