Упражнения

Замечание для умных

В этом листке нельзя пользоваться условными инструкциями if, циклами for и while.

Замечание для самых умных

Также нельзя пользоваться тернарным оператором ? :, операциями сравнения чисел, функциями abs, fabs, max и т.д. Единственное разрешенное действие — арифметические операции.

A: Hello, world!

Напишите программу, которая выводит строчку “Hello, world!” и символ конца строки после нее.

Пример

Ввод Вывод
 
Hello, world!

B: Следующее и предыдущее

Напишите программу, которая считывает целое число и выводит текст, аналогичный приведенному в примере (пробелы важны!):

Пример

Ввод Вывод
179
The next number for the number 179 is 180.
The previous number for the number 179 is 178.

C: Дележ яблок

\(n\) школьников делят \(k\) яблок поровну, неделяющийся остаток остается в корзинке. Сколько яблок достанется каждому школьнику? Сколько яблок останется в корзинке? Программа получает на вход числа \(n\) и \(k\) и должна вывести два числа: количество яблок у каждого школьника и количество яблок, оставшихся в корзинке.

Пример

Ввод Вывод
3
14
4 2

D: Последняя цифра

Дано натуральное число. Выведите его последнюю цифру.

Пример

Ввод Вывод
179
9

E: Число десятков

Дано натуральное число. Найдите число десятков в его десятичной записи (то есть вторую справа цифру его десятичной записи).

Пример

Ввод Вывод
179
7

F: Сумма цифр

Дано трехзначное число. Найдите сумму его цифр.

Пример

Ввод Вывод
179
17

G: Следующее четное

Дано целое число n. Выведите следующее за ним четное число.

Пример

Ввод Вывод
7
8
8
10

H: Шнурки

Обувная фабрика собирается начать выпуск элитной модели ботинок. Дырочки для шнуровки будут расположены в два ряда, расстояние между рядами равно \(a\), а расстояние между дырочками в ряду \(b\). Количество дырочек в каждом ряду равно \(N\). Шнуровка должна происходить элитным способом “наверх, по горизонтали в другой ряд, наверх, по горизонтали и т.д.” (см. рисунок). Кроме того, чтобы шнурки можно было завязать элитным бантиком, длина свободного конца шнурка должна быть \(l\). Какова должна быть длина шнурка для этих ботинок?

Программа получает на вход четыре натуральных числа \(a\), \(b\), \(l\) и \(N\). Программа должна выводить одно число – искомую длину шнурка.

Пример

Ввод Вывод
2
1
3
4
26

I: Парты

В некоторой школе решили набрать три новых математических класса и оборудовать кабинеты для них новыми партами. За каждой партой может сидеть два учащихся. Известно количество учащихся в каждом из трех классов. Выведите наименьшее число парт, которое нужно приобрести для них.

Программа получает на вход три натуральных числа: количество учащихся в каждом из трех классов.

Пример

Ввод Вывод
20
21
22
32

J: Электронные часы - 1

Дано число n. С начала суток прошло n минут. Определите, сколько часов и минут будут показывать электронные часы в этот момент. Программа должна вывести два числа: количество часов (от 0 до 23) и количество минут (от 0 до 59). Учтите, что число n может быть больше, чем количество минут в сутках.

Пример

Ввод Вывод
150
2 30
1441
0 1

K: Электронные часы - 2

Электронные часы показывают время в формате h:mm:ss, то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями.

С начала суток прошло n секунд. Выведите, что покажут часы.

Пример

Ввод Вывод
3602
1:00:02
129700
12:01:40

L: Обмен значений - 1

Напишите программу, которая считывает значения двух переменных a и b, затем меняет их значения местами (то есть в переменной a должно быть записано то, что раньше хранилось в b, а в переменной b записано то, что раньше хранилось в a). Затем выведите значения переменных.

Пример

Ввод Вывод
3
7
7 3

Примечание. Решением задачи не является такой код:

cin >> a >> b;
cout << b << " " << a << endl;
Указание. Используйте вспомогательную переменную.

M: Обмен значений - 2

Решите предыдущую задачу без использования вспомогательной переменной.

N: Конец уроков

В некоторой школе занятия начинаются в 9:00. Продолжительность урока — 45 минут, после 1-го, 3-го, 5-го и т.д. уроков перемена 5 минут, а после 2-го, 4-го, 6-го и т.д. — 15 минут.

Дан номер урока (число от 1 до 10). Определите, когда заканчивается указанный урок. Выведите два целых числа: время окончания урока в часах и минутах.

Пример

Ввод Вывод
3
11 35
2
10 35

O: Стоимость покупки

Пирожок в столовой стоит \(a\) рублей и \(b\) копеек. Определите, сколько рублей и копеек нужно заплатить за \(n\) пирожков. Программа получает на вход три числа: \(a\), \(b\), \(n\), и должна вывести два числа: стоимость покупки в рублях и копейках.

Пример

Ввод Вывод
10
15
2
20 30
2
50
4
10 0

P: Разность времен

Даны значения двух моментов времени, принадлежащих одним и тем же суткам: часы, минуты и секунды для каждого из моментов времени. Известно, что второй момент времени наступил не раньше первого. Определите, сколько секунд прошло между двумя моментами времени. Программа на вход получает три целых числа — часы, минуты, секунды, задающие первый момент времени и три целых числа, задающих второй момент времени. Выведите число секунд между этими моментами времени.

Пример

Ввод Вывод
1
1
1
2
2
2
3661
1
2
30
1
3
20
50

Q: Автопробег

За день машина проезжает \(n\) километров. Сколько дней нужно, чтобы проехать маршут длиной \(m\) километров?

Программа получает на вход числа \(n\) и \(m\).

Пример

Ввод Вывод
700
750
2
700
2100
3

R: Дележ яблок - 2

\(n\) школьников делят \(k\) яблок “поровну”, то есть так, чтобы количество яблок, доставшихся любым двум школьникам, отличалось бы не более, чем на 1.

Программа получает на вход числа \(n\) и \(k\) и должна вывести количество школьников, которым достанется яблок меньше, чем некоторым из их товарищей.

Пример

Ввод Вывод
7
30
5
7
28
0

S: Улитка

Улитка ползет по вертикальному шесту высотой \(h\) метров, поднимаясь за день на \(a\) метров, а за ночь спускаясь на \(b\) метров. На какой день улитка доползет до вершины шеста?

Программа получает на вход натуральные числа \(h\), \(a\), \(b\), и должна вывести одно натуральное число. Гарантируется, что \(a>b\).

Пример

Ввод Вывод
10
3
2
8

T: МКАД

Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с нулевого километра МКАД и едет со скоростью \(v\) километров в час. На какой отметке он остановится через \(t\) часов?

Программа получает на вход значение \(v\) и \(t\). Если \(v>0\), то Вася движется в положительном направлении по МКАД, если же значение \(v<0\), то в отрицательном.

Программа должна вывести целое число от 0 до 108 — номер отметки, на которой остановится Вася.

Пример

Ввод Вывод
60
2
11
-1
1
108

U: Симметричное число

Дано четырехзначное число. Определите, является ли его десятичная запись симметричной. Если число симметричное, то выведите 1, иначе выведите любое другое целое число. Число может иметь меньше четырех знаков, тогда нужно считать, что его десятичная запись дополняется слева незначащими нулями.

Пример

Ввод Вывод
2002
1
2008
37

V: Проверьте делимость

Даны два натуральных числа n и m. Если одно из них делится на другое нацело, выведите 1, иначе выведите любое другое целое число.

Пример

Ввод Вывод
2
8
1
8
2
1
3
5
7

W: Часы

В часах села батарейка, и они стали идти вдвое медленнее. Когда на часах было \(x_1\) часов \(y_1\) минут, правильное время было \(a_1\) часов \(b_1\) минут. Сколько времени будет на самом деле, когда часы в следующий раз покажут \(x_2\) часов \(y_2\) минут?

Программа получает на вход числа \(x_1\), \(y_1\), \(a_1\), \(b_1\), \(x_2\), \(y_2\) в указанном порядке. Все числа целые. Числа \(x_1\), \(a_1\), \(x_2\) — от 0 до 23, числа \(y_1\), \(b_1\), \(y_2\) — от 0 до 59.

Выведите два числа \(a_2\) и \(b_2\), определяющие сколько будет времени на самом деле, когда на часах будет \(x_2\) часов \(y_2\) минут.

Пример

Ввод Вывод
12
34
10
34
12
35
10 36
12
34
10
0
2
34
14 0

Тесты к этой задаче закрытые.

X: Турнир

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

Вводится одно натуральное число — количество команд.

Выведите одно число — наибольшее возможное количество победителей в таком турнире.

Пример

Ввод Вывод
2
1

Тесты к этой задаче закрытые.

Y: Максимум

Напишите программу, которая считывает два целых числа \(a\) и \(b\) и выводит наибольшее значение из них. Числа — целые от 1 до 1000.

При решении задачи можно пользоваться только целочисленными арифметическими операциями +, -, *, /, %, =. Нельзя пользоваться нелинейными конструкциями: ветвлениями, циклами, функциями.

Пример

Ввод Вывод
8
5
8
5
8
8
5
5
5

Z: Детали

Имеется \(N\) кг металлического сплава. Из него изготавливают заготовки массой \(K\) кг каждая. После этого из каждой заготовки вытачиваются детали массой \(M\) кг каждая (из каждой заготовки вытачивают максимально возможное количество деталей). Если от заготовок после этого что-то остается, то этот материал возвращают к началу производственного цикла и сплавляют с тем, что осталось при изготовлении заготовок. Если того сплава, который получился, достаточно для изготовления хотя бы одной заготовки, то из него снова изготавливают заготовки, из них—  детали и т.д.

Напишите программу, которая вычислит, какое количество деталей может быть получено по этой технологии из имеющихся исходно \(N\) кг сплава.

Программа получает на вход три натуральных числа \(N\), \(K\), \(M\), при этом \(K\ge M\), числа не превосходят \(10^{18}\).

Выведите одно число — количество деталей, которое может получиться по такой технологии.

Пример

Ввод Вывод
10
5
2
4
13
5
3
3
14
5
3
4
13
9
4
2
1
5
3
0

Тесты к этой задаче закрытые.

Screenshot

Установите дома среду разработки Code::Blocks (или любую другую). Напишите простую программу. Запустите ее. Сделайте скриншот, демонстрирующий работу среды разработки (должно быть видно, что вы умеете компилировать и запускать программы) , сохраните его в формате JPEG, картинку со скриншотом сдайте в тестирующую систему.

Как сделать скриншот в Windows:

  1. Запустить Code::Blocks.
  2. Нажать на кнопку PrtSc (Print Screen). Изображение экрана скопируется в буфер обмена.
  3. Запустить редактор Paint. Вставить картинку из буфера обмена.
  4. Сохранить картинку, при сохранении выбрать формат JPEG.