Олимпиадные задания на python. олимп_задания python. Целыми числами в языке Python выполняются следующие операции
Скачать 80.5 Kb.
|
Над целыми числами в языке Python выполняются следующие операции: сложение (+) вычитание (-) умножение (*) возведение в степень (**) взятие целого частного (//) взятие целого остатка от деления (%) деление (/) Результаты первых пяти операций всегда являются целым числом. Результат операции деления – это всегда вещественное число на языке Python, то есть результат деления 10 на 5 программа выведет как 2.0, а не 2. Рассмотрим пример использования операций // и %. Как мы уже увидели, операция // означает взятие целой части от деления, а операция % означает взятие остатка от деления. Результат этих операций всегда будет целым числом. Посмотрите на рисунок. При делении числа 17 на 3 мы получим 5 в целой части и 2 в остатке от деления. Рассмотрим, как применяются эти операции при решении олимпиадных задач по программированию на языке Python. Рассмотрим задачу «Шахматная доска» Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введенным координатам двух полей (x1, y1) и (x2, y2) определяет имеют ли эти поля один цвет – выводит YES, если поля одного цвета и NO в противном случае.
Заметим, что для того, чтоб цвета клеток совпадали, сумма разниц координат по x и по y должна быть четной. Решение на языке Python: print ('Координаты 1-го поля') x1 = int(input()) y1 = int(input()) print ('Координаты 2-го поля') x2 = int(input()) y2 = int(input()) if (x2 - x1 + y2 – y1) % 2 == 0: print('YES') else: print('NO') Рассмотрим задачу. Определить номера подъезда и этажа по номеру квартиры 9-тиэтажного дома, считая, что на каждом этаже расположены 4 квартиры, а нумерация начинается с 1-го подъезда.
Решение на языке Python: print('Введите номер квартиры') nkv=int(input()) p=(nkv+35) // 36 nkv=nkv-(p-1)*36 etag=(nkv+3) // 4 print('номер подъезда ',p) print('номер этажа ',etag) Самостоятельно добавьте в эту программу возможность задавать этажность дома n и количество квартир на этаже k. Самостоятельно решите задачу. Занятия в школе начинаются в 8-30. Урок длится 45 минут, перерывы между уроками – 10 минут. Ввести номер урока и вывести время его окончания.
Напишите программу на языке Python и заполните следующую таблицу:
Сделайте вывод: какую цифру числа мы можем получить, находя остаток от его деления на 10? Разделите столбиком любое трехзначное число на 100. Проведите эту операцию еще с одним любым трехзначным числом, например:Сделайте вывод: как найти первую цифру трехзначного числа? Запишите формулу на языке Python для вычисления первой цифры любого трехзначного числа.Разделите столбиком двузначное число на 10. Например, возьмем остаток от деления предыдущего числа на 100 – число 76.Сделайте вывод: как найти первую и вторую цифру двузначного числа? Запишите формулу на языке Python для вычисления первой цифры любого трехзначного числа.Рассмотрим задачу «Сумма цифр трехзначного числа»Дано трёхзначное число. Найдите сумму его цифр. Используем тот факт, что положительное трёхзначное число можно представить в виде следующей суммы: х = c1 * 100 + c2 * 10 + c3, где c1, c2, c3 — цифры числа x, то есть c1 – первая цифра, c2 – вторая цифра, c3 – третья цифра. Решение на языке Python будет выглядеть следующим образом: print ('Нахождение суммы цифр трёхзначного числа') x = int (input ('Введите трехзначное число')) c1 = х // 100 c2 = (x % 100) // 10 c3 = x % 10 s=c1 + c2 + c3 print ('s= ', s) Наберите эту программу и запустите на выполнение. После запуска программы введите ЛЮБОЕ трехзначное число, программа вычислит сумму его цифр. С помощью этой программы определите, чему равна сумма цифр числа 123? А сумма цифр числа 738? Самостоятельно напишите программу для решения следующей задачи: в трехзначном числе сложить цифры десятков и единиц и вычесть цифру сотен. Рассмотрим задачу. Ввести трехзначное число и вывести число, полученное при перестановке его цифр сотен и единиц. Решение на языке Python: x = int (input ('Введите трехзначное число')) c1 = х // 100 c2 = (x % 100) // 10 c3 = x % 10 n=c3*100 + c2*10 + c1 print ('Число, полученное при перестановке цифр сотен и единиц ', n) Самостоятельно решите следующую задачу: Ввести четырехзначное число и вывести число, полученное при перестановке его первой и второй цифр. Рассмотрим задачу. Ввести двузначное число и определить, является ли оно палиндромом, то есть числом, десятичная запись которого читается одинаково слева направо и справа налево. Программа выводит YES, если число является палиндромом и NO в противном случае.
Решение на языке Python: print('Введите двузначное число') x = int (input ()) c1= x//10 c2 = x % 10 if c1==c2: print ('YES ') else: print ('NO ') Задачи для самостоятельного решения: Ввести трехзначное число и определить, является ли оно палиндромом. Программа выводит YES, если число является палиндромом и NO в противном случае. Ввести четырехзначное число и определить, является ли оно палиндромом. Программа выводит YES, если число является палиндромом и NO в противном случае. |