Ответы на информатикс питон

Решения задач школьного этапа Всероссийской олимпиады школьников по информатике (9-11 классы)

Эта задача с открытыми тестами. Ее решением является набор ответов, а не программа на языке программирования. Тесты указаны в самом условии. От вас требуется лишь ввести ответы на них в тестирующую систему.

Известно, что все современные компьютеры используют двоичную систему счисления. Но некоторые исследователи считают, что компьютеры на троичной, четверичной и других системах счисления будут работать быстрее.

Вычислительная компания XYZ закупила новые экспериментальные компьютеры, но её сотрудники не знают, в какой системе счисления новые компьютеры выдают результаты их вычислений. Помогите им определить их результаты в традиционной десятичной системе, если известно, что последовательность цифр N, которую выдает экспериментальный компьютер, записана в минимально возможной для этого системе счисления.

  • Тест №1: N=123
  • Тест №2: N=796
  • Тест №3: N = 60452
  • Тест №4: N = 101001
  • Тест №5: N = 32674
  • Тест №6: N = 306973
  • Тест №7: N = 123042
  • Тест №8: N = 202122
  • Тест №9: N = 871856
  • Тест №10: N = 125341

Решение

Для получения ответов удобно воспользовать программой, в которой будет определяться минимально возможное основание системы счисления:

  • int( max(n) ) + 1 — максимальный символ в строке n переводим в целое число + 1
  • преводим строковое представление числа n с найденным основанием в целое десятичное число: int( строка, основание) (если основание не указано — сторка в десятичном представлении)
for i in range(10): n = input() print ( int( n, int( max(n) ) + 1 ) ) 
123 27 796 796 60452 14639 101001 41 32674 13756 306973 306973 123042 4772 202122 557 871856 519747 125341 11581

Задача B. Улиточные бега

  • Имя входного файла: стандартный ввод
  • Имя выходного файла: стандартный вывод
  • Ограничение по времени: 1 секунда
  • Ограничение по памяти: 256 мегабайт
Читайте также:  Python цикл по дате

Каждые 100 лет в Стране Улиток проводятся улиточные бега на дистанции L сантиметров. Это станет для вас неожиданностью, но в этом столетии они проводятся именно сегодня!

В этом году организаторы приняли решение провести бега на новой трассе — прямоугольнике размера A × B сантиметров. Согласно правилам, участники начнут бежать из нижнего левого угла прямоугольника против часовой стрелки в соответствии со схемой ниже:

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

Формат входных данных

Вводятся три целых числа A, B, L (2

Формат выходных данных

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

Примеры

Решение

После преодаления дистанции равной периметру прямоугольника 2(a+b) — история со сторонами повтаряется. Поэтому достаточно взять не всю дистанцию l, а ее остаток на длину периметра l = l % 2(a+b). Далее, сравниваем l с длиной сторон в рамках одного периметра: до a — нижняя, иначе до a+b — правая, иначе до 2a+b — верхняя и иначе — левая

a,b,l=int(input()), int(input()), int(input()) l %= 2*(a+b) print (la and 'BOTTOM' or l(a+b) and 'RIGHT' or l(a+a+b) and 'TOP' or 'LEFT') 

Задача C. Треугольник

  • Имя входного файла: стандартный ввод
  • Имя выходного файла: стандартный вывод
  • Ограничение по времени: 1 секунда
  • Ограничение по памяти: 256 мегабайт

На координатной плоскости расположены равнобедренный прямоугольный треугольник ABC с длиной катета d и точка X. Катеты треугольника лежат на осях координат, а вершины расположены в точках: A(0, 0), B(d, 0), C(0, d). Требуется написать программу, которая определяет взаимное расположение точки X и треугольника. Если точка X расположена внутри или на сторонах треугольника, выведите 1. Если же точка находится вне треугольника, выведите 0.

Формат входных данных

В первой строчке вводится натуральное число d (не превосходящее 1000), во второй — координата точки X по оси OX (целое число из диапазона от −1000 до 1000), в третьей координата точки X по оси OY (целое число из диапазона от −1000 до 1000).

Формат выходных данных

Если точка лежит внутри, на стороне треугольника или совпадает с одной из вершин, то выве- дите число 1. Если точка лежит вне треугольника, то выведите 0.

Примеры

Источник

Д. П. Кириенко. Программирование на языке Python (школа 179 г. Москвы)

Ранее была задача вычисления числа сочетаний из n элементов по k, для чего необходимо вычисление факториалов трех величин: n, k и n-k. Для этого можно сделать три цикла, что приводит к увеличению размера программы за счет трехкратного повторения похожего кода. Вместо этого лучше сделать одну , вычисляющую факториал любого данного числа n и трижды использовать эту функцию в своей программе. Соответствующая функция может выглядеть так:

def factorial(n): f = 1 for i in range(2, n + 1): f *= i return f

Этот текст должен идти в начале программы, вернее, до того места, где мы захотим воспользоваться функцией factorial . Первая строчка этого примера является описанием нашей функции. factorial — идентификатор, то есть имя нашей функции. После идентификатора в круглых скобках идет список параметров, которые получает наша функция. Список состоит из перечисленных через запятую идентификаторов параметров. В нашем случае список состоит из одной величины n . В конце строки ставится двоеточие.

Далее идет тело функции, оформленное в виде блока, то есть с отступом. Внутри функции вычисляется значение факториала числа n и оно сохраняется в переменной f . Функция завершается инструкцией return f , которая завершает работу функции и возвращает значение переменной f . Инструкция return может встречаться в произвольном месте функции, ее исполнение завершает работу функции и возвращает указанное значение в место вызова. Если функция не возвращает значения, то инструкция return используется без возвращаемого значения, также в функциях, не возвращающих значения, инструкция return может отсутствовать.

Теперь мы можем использовать нашу функцию несколько раз. В этом примере мы трижды вызываем функцию factorial для вычисления трех факториалов: factorial(n) , factorial(k) , factorial(n-k) .

n = int(input()) k = int(input()) print factorial(n) // (factorial(k) * factorial(n - k))

Мы также можем, например, объявить функцию binomial , которая принимает два целочисленных параметра n и k и вычисляет число сочетаний из n по k :

def binomial(n, k) return factorial(n) // (factorial(k) * factorial(n - k))

Тогда в нашей основной программе мы можем вызвать функцию binomial для нахождения числа сочетаний:

Вернемся к задаче нахождения наибольшего из двух или трех чисел. Функцию нахождения максимума из двух чисел можно написать так:

def max(a, b): if a > b: return a else: return b

Теперь мы можем реализовать функцию max3 , находящую максимум трех чисел:

def max3(a, b, c): return max(max(a, b), c)

Функция max3 дважды вызывает функцию max для двух чисел: сначала, чтобы найти максимум из a и b , потом чтобы найти максимум из этой величины и c .

Источник

Решение модуля 10.1 из курса «Поколение python» для начинающих

Точные ответы и стопроцентные решения на языке Python модуля 10.1 по курса «Поколение Python: курс для начинающих». Разбираем контрольную работу.

Первым индексом в строковом значении является

Последним индексом в строковом значении является

Если попытаться использовать индекс, который находится за пределами диапазона строкового значения, то

произойдет ошибка IndexError 

Какой оператор определяет, содержится ли одно строковое значение в другом?

Какой строковый метод возвращает индекс первого вхождения подстроки в строку?

Какой строковый метод возвращает копию строкового значения, в котором удалены все ведущие пробельные символы?

Какой строковый метод возвращает копию строкового значения, в котором удалены все ведущие и замыкающие пробельные символы?

Какой строковый метод возвращает истину, если строковое значение содержит только буквы и имеет по крайней мере один символ?

Какой строковый метод возвращает истину, если строковое значение содержит только цифры и имеет по крайней мере один символ?

Что покажет приведенный ниже фрагмент кода?

name = ‘джо’
print(name.lower())
print(name.upper())
print(name)

Источник

Оцените статью