Тема: Готовимся к
олимпиадам: Задачи на ввод-вывод и арифметические операции.
Содержание
1. Введение
|
|
2. Условия задач
|
|
Задача A. Гипотенуза
|
|
Задача B. Следующее и предыдущее
|
|
Задача C. Дележ яблок – 1
|
|
Задача D. Дележ яблок – 2
|
|
Задача E. МКАД
|
|
Задача F. Последняя цифра
|
|
Задача G. Число десятков двузначного числа
|
|
Задача H. Число десятков
|
|
Задача I. Сумма цифр
|
|
Задача J. Следующее четное
|
|
Задача K. Электронные часы – 1
|
|
Задача L. Электронные часы – 2
|
|
Задача M. Обмен значений
|
|
Задача N. Конец уроков
|
|
Задача O. Стоимость покупки
|
|
Задача P. Разность времен
|
|
Задача Q. Автопробег
|
|
Задача R. Дележ яблок – 3
|
|
Задача S. Улитка
|
|
Задача T.
Симметричное число
|
|
Задача U. Проверьте делимость
|
|
Задача V. Максимум
|
|
3. Решения задач
|
|
Введение
В данной работе дается задачи для подготовки к олимпиадам для
начинающих и решения каждой задачи. Данная работа полезна для школьников,
желающих углубленно изучать программирования. А также для учителей информатики
и студентов технических и педагогических ВУЗов.
2. Условия задач
Задача A. Гипотенуза
Дано два числа a и b. Выведите гипотенузу треугольника с заданными катетами.
Примеры
Входные данные
|
Выходные данные
|
3
4
|
5.0
|
Задача B. Следующее
и предыдущее
Напишите программу, которая считывает целое
число и выводит текст, аналогичный приведенному в примере. Пробелы, знаки
препинания, заглавные и строчные буквы важны!
Пример
Ввод
|
Вывод
|
179
|
The previous number for the number 179 is 178.
The next number for the number 179 is 180.
|
Задача C. Дележ
яблок – 1
N школьников делят K
яблок поровну, неделящийся остаток остается в корзинке. Сколько яблок
достанется каждому школьнику? Программа
получает на вход числа N и K и должна
вывести искомое количество яблок.
Пример
Задача D. Дележ
яблок – 2
N школьников делят K
яблок поровну, неделящийся остаток остается в корзинке. Сколько яблок останется
в корзинке? Программа получает на вход числа N и K и должна вывести искомое количество яблок.
Пример
Задача E. МКАД
Длина Московской кольцевой автомобильной
дороги —109 километров. Байкер Вася стартует с нулевого километра МКАД и едет
со скоростью v километров в час. На какой отметке он
остановится через t часов?
Программа получает на вход значения v и t. Если v>0, то Вася
движется в положительном направлении по МКАД, если же значение v<0, то в отрицательном.
Программа должна вывести целое число от 0 до
108 — номер отметки, на которой остановится Вася.
Примеры
Входные данные
|
Выходные данные
|
60
2
|
11
|
-1
1
|
108
|
Задача F. Последняя
цифра
Дано натуральное число. Выведите его последнюю
цифру.
Пример
Задача G. Число
десятков двузначного числа
Дано двузначное число. Найдите число десятков
в нем.
Пример
Задача H. Число
десятков
Дано натуральное число. Найдите число десятков
в его десятичной записи (то есть вторую справа цифру его десятичной записи).
Пример
Задача I. Сумма
цифр
Дано трехзначное число. Найдите сумму его
цифр.
Пример
Задача J. Следующее
четное
Дано целое число n.
Выведите следующее за ним четное число. При решении этой задачи нельзя
использовать условную инструкцию if и циклы.
Пример
Задача K. Электронные
часы – 1
Дано число n. С начала
суток прошло n минут. Определите, сколько часов и минут
будут показывать электронные часы в этот момент. Программа должна вывести два
числа: количество часов (от 0 до 23) и количество минут (от 0 до 59). Учтите,
что число n может быть больше, чем количество минут в
сутках.
Пример
Ввод
|
Вывод
|
150
|
2 30
|
1441
|
0 1
|
Задача L. Электронные
часы – 2
Электронные часы показывают время в формате h:mm:ss, то есть сначала
записывается количество часов, потом обязательно двузначное количество минут,
затем обязательно двузначное количество секунд. Количество минут и секунд при
необходимости дополняются до двузначного числа нулями.
С начала суток прошло n
секунд. Выведите, что покажут часы.
Пример
Ввод
|
Вывод
|
3602
|
1:00:02
|
129700
|
12:01:40
|
Задача M. Обмен
значений
Напишите программу, которая считывает значения
двух переменных a и b, затем меняет
их значения местами (то есть в переменной a должно быть
записано то, что раньше хранилось в b, а в переменной b записано то, что раньше хранилось в a). Затем
выведите значения переменных.
Пример
Примечание. Решением задачи не является такой
код:
a = input ()
b = input ()
print (b, a)
То есть ваша программа должна иметь примерно
такой вид:
a = input ()
b = input ()
# Допишите сюда
# свой код
print (a, b)
Задача 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.
При решении этой задачи нельзя пользоваться
условной инструкцией if и циклами.
Примеры
Входные данные
|
Выходные данные
|
700
750
|
2
|
700
2100
|
3
|
Задача R. Дележ
яблок – 3
n школьников делят k
яблок “поровну”, то есть так, чтобы количество яблок, доставшихся любым двум
школьникам, отличалось бы не более, чем на 1.
Программа получает на вход числа n и k и должна вывести количество школьников,
которым достанется яблок меньше, чем некоторым из их товарищей.
При решении этой задачи нельзя пользоваться
условной инструкцией if и циклами.
Пример
Задача S. Улитка
Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь,
спускаясь на b метров. На какой день улитка доползёт до
вершины шеста?
Программа получает на вход натуральные числа h, a, b и должна вывести одно
натуральное число. Гарантируется, что a>b.
При решении этой задачи нельзя пользоваться условной
инструкцией if и циклами.
Примеры
Входные данные
|
Выходные данные
|
10
3
2
|
8
|
Задача T. Симметричное
число
Дано четырехзначное число. Определите,
является ли его десятичная запись симметричной. Если число симметричное, то
выведите 1, иначе выведите любое другое целое число. Число может иметь меньше
четырех знаков, тогда нужно считать, что его десятичная запись дополняется
слева незначащими нулями.
При решении этой задачи нельзя пользоваться
условной инструкцией if и циклами
Пример
Ввод
|
Вывод
|
2002
|
1
|
2008
|
37
|
Задача U. Проверьте
делимость
Даны два натуральных числа n и m. Если одно из них делится на другое нацело,
выведите 1, иначе выведите любое другое целое число.
При решении этой задачи нельзя пользоваться
условной инструкцией if и циклами.
Пример
Ввод
|
Вывод
|
2
8
|
1
|
8
2
|
1
|
3
5
|
7
|
Задача V. Максимум
Напишите программу, которая считывает два
целых числа a и b и выводит
наибольшее значение из них. Числа — целые от 1 до 1000.
При решении задачи можно пользоваться только
целочисленными арифметическими операциями +, -, *, //, %, =. Нельзя
пользоваться нелинейными конструкциями: ветвлениями, циклами, функциями
вычисления модуля, извлечения квадратного корня.
Примеры
Входные данные
|
Выходные данные
|
8
5
|
8
|
5
8
|
8
|
5
5
|
5
|
3. Решение задач.
Задача A.
Гипотенуза
var a,b:real;
begin
read(a,b);
write(sqrt(a*a+b*b));
end.
Задача B. Следующее
и предыдущее
var a:integer;
begin
read(a);
writeln('The next number for the number
',a,' is ',a+1,'.');
writeln('The previous number for the number
',a,' is ',a-1,'.');
end.
Задача C. Дележ
яблок – 1
var n,k:integer;
begin
read(n,k);
write(k div n);
end.
Задача D.
Дележ яблок
– 2
var n,k:integer;
begin
read(n,k);
write(k mod n);
end.
Задача E.
МКАД
var v,t:integer;
begin
read(v,t);
write(((abs(v*t) div 109+1)*109+v*t) mod
109);
end.
Задача F. Последняя
цифра
var v:longint;
begin
read(v);
write(v mod 10);
end.
Задача G. Число
десятков двузначного числа
var v:longint;
begin
read(v);
write(v div 10);
end.
Задача H. Число
десятков
var v:longint;
begin
read(v);
write(v div 10 mod 10);
end.
Задача I. Сумма
цифр
var v:longint;
begin
read(v);
write(v div 10 div 10+v div 10 mod 10+v
mod 10);
end.
Задача J. Следующее
четное
var n:longint;
begin
read(n);
write((n div 2+1)*2);
end.
Задача K. Электронные
часы – 1
var n,h,m:longint;
begin
read(n);
h:=n div 60 mod 24;
m:=n mod 60;
write(h,' ',m);
end.
Задача L. Электронные
часы – 2
var n,h,m,s:longint;
begin
read(n);
h:=n div 3600 mod 24;
m:=(n mod 3600) div 60;
s:=(n mod 3600) mod 60;
write(h,':',m div 10,m mod 10,':',s div
10,s mod 10);
end.
Задача M. Обмен значений
var a,b:longint;
begin
read(a,b);
a:=a+b;
b:=a-b;
a:=a-b;
write(a,' ',b);
end.
Задача N. Конец уроков
var m,n,c0,m0,c:integer;
begin
read(n);
c0:=9; m0:=0;
m0:=m0+c0*60;
m:=45*n+(n div 2)*5+((n-1) div 2)*15;
m:=m+m0;
c:=m div 60;
m:=m mod 60;
write(c,' ',m)
end.
Задача O. Стоимость
покупки
var a,b,n:longint;
begin
read(a,b,n);
write(a*n+b*n div 100,' ',b*n mod 100);
end.
Задача P.
Разность времен
var h1,m1,s1,h2,m2,s2:longint;
begin
read(h1,m1,s1,h2,m2,s2);
write(h2*3600+m2*60+s2-h1*3600-m1*60-s1);
end.
Задача Q. Автопробег
var m, n, d : longint;
begin
read(n,m);
d:=(m-1) div n+1;
write(d);
end.
Задача R.
Дележ яблок
– 3
var n,k:longint;
begin
read(n,k);
write((n-k mod n)mod n);
end.
Задача S.
Улитка
var h, a, b, shag, h0:longint;
begin
read(h,a,b);
h0:=h-a;
shag:=a-b;
write(1 + h0 div shag + (h0 mod shag +
shag - 1) div shag);
end.
Задача T. Симметричное число
var n,p1,p2,z1,z2,z3,z4,s:integer;
begin
read(n);
p1:=n div 100;
p2:=n mod 100;
z1:=p1 div 10;
z2:=p1 mod 10;
z3:=p2 div 10;
z4:=p2 mod 10;
s:=z4*1000+z3*100+z2*10+z1;
write(n-s+1);
end.
Задача U. Проверьте
делимость
var n,m:longint;
begin
read(n,m);
write((n mod m)*(m mod n)+1);
end.
Задача V.
Максимум
var a,b:longint;
begin
read(a,b);
write((((a+b) div b-1)*a+((a+b) div
a-1)*b) div(a div b+b div a));
end.
5. Список используемой литературы
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.