Тема Практика Программирования

03 Простейшие программы

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела практика программирования
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 61#45084

Нолик хочет понять, смогут ли все фиксики в доме ДимДимыча встать один на другого и быть по росту выше ДимДимыча. Всего фикскиков в доме 100  их рост в миллиметрах записан в файле (скопируйте и вставьте данные). Рост ДимДимыча 78  см. Помогите Нолику, напишите в ответе 1  , если суммарный рост фиксиков больше ДимДимыча и     0  , если меньше.

Примечание: не используйте в задаче массивы.

Вложения к задаче
Показать ответ и решение
n = 100
s = 0
for i in range(n):
    x = int(input())
    s += x
if s / 10 > 78:
    print(1)
else:
    print(0)

Ответ: 0

Ошибка.
Попробуйте повторить позже

Задача 62#45085

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

Примечание: не используйте в задаче массивы.

Вложения к задаче
Показать ответ и решение
n = 100
maxim = 0
maximName = 0
for i in range(n):
    x = int(input())
    name = input()
    if x > maxim:
        maxim = x
        maximName = name
print(maximName.lower())

Ответ: awopg

Ошибка.
Попробуйте повторить позже

Задача 63#45086

Когда Симка получила свой помогатор, она сразу решила, что будет вести учет того, как часто она пользуется каждый инструментом. В ее помогаторе 500  инструментов, Симка считает, что если инструмент использовался менее 10  раз, то его можно выкинуть из помогатора и взять с собой более полезный. В текстовый файл Симка записала 500  чисел, каждое число соответствует количеству использований какого-то инструмента. Помогите Симке определить сколько инструментов она может выкинуть из помогатора. В ответе запишите искомое количество.

Примечание: не используйте в задаче массивы.

Вложения к задаче
Показать ответ и решение
n = 500
count = 0
for i in range(n):
    x = int(input())
    if x < 10:
        count += 1
print(count)

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 64#45087

В доме ДимДимыча случилась катастрофа: неожиданно и неприятно, все фиксики практически полностью разрядились. Из рабочих приборов у ДимДимыча остались только кофеварка и компьютер. Сейчас все фиксики пытаются зарядиться, поэтому встали в очереди к двум приборам зарядки. Нолик не может понять, в какую из очередей ему встать, чтобы быстрее зарядиться. Известно, что в первой очереди 23  фиксика, время зарядки каждого фиксика в секундах записано в текстовый файл. Во второй очереди 25  фиксиков, время их зарядки записано в тот же файле, начиная с 24  строчки. Помогите Нолику сделать правильный выбор, напишите в ответе 1  , если Нолик сможет зарядиться быстрее у первого прибора и 2  , если у второго.

Примечание: не используйте в задаче массивы.

Вложения к задаче
Показать ответ и решение
sum_1, sum_2 = 0, 0
for i in range(23):
    sum_1 += int(input())
for i in range(25):
    sum_2 += int(input())
if sum_1 < sum_2:
    print(1)
else:
    print(2)

Ответ: 1

Ошибка.
Попробуйте повторить позже

Задача 65#45088

У нолика есть два набора проводов. В первом наборе есть провода длиной [12,22,23,  28,10]  см, а во втором наборе провода длиной [32,14,24,7,30]  см. Нолик хочет сейчас выбрать один провод из первого множества и один провод из второго множества, чтобы сумма длин проводов получилась больше 50  см. Помогите Нолику решить задачу, найдите сколько всего подходящих пар проводов есть на выбор у Нолика.

Показать ответ и решение
a = [12, 22, 23, 28, 10]
b = [32, 14, 24, 7, 30]
count = 0
for i in a:
    for j in b:
        if i + j > 50:
            count += 1
print(count)

Ответ: 7

Ошибка.
Попробуйте повторить позже

Задача 66#45089

У Нолика есть один набор проводов длиной [12,22,23,28,10,92,43,12,65]  см. Он хочет выбрать два провода из этого набора, чтобы соединить их в один и получить провод максимальной длины, кратной 10  . Помогите Нолику найти длину такого провода.

Показать ответ и решение
a = [12, 22, 23, 28, 10, 92, 43, 12, 65]
maxim = 0
for i in range(len(a) - 1):
    for j in range(i + 1, len(a)):
        if (a[i] + a[j]) % 10 == 0 and (a[i] + a[j]) > maxim:
            maxim = a[i] + a[j]
print(maxim)

Ответ: 120

Ошибка.
Попробуйте повторить позже

Задача 67#45090

Дедус решил придумать для фиксиков специальный язык, чтобы люди не могли их понять. Дедус хочет, чтобы все слова в его словаре содержали по 4  буквы и состояли только из букв «Ф», «И», «К», «С» (данный порядок букв будет считаться алфавитным). Каждая буква в слове может встречаться сколько угодно раз или не встречаться совсем. Помогите Дедусу вывести все слова из его словаря на экран и найдите их количество. В ответ записать количество данных слов.

Показать ответ и решение
s = "ФИКС"
count = 0
for i in s:
    for j in s:
        for k in s:
            for l in s:
                print(i + j + k + l)
                count += 1
print(count)

Ответ: 256

Ошибка.
Попробуйте повторить позже

Задача 68#45091

Дедус продолжает работать над языком фиксиков. Теперь Дедус хочет понять под каким номером в его словаре фиксиков будет встречено слово «СКИФ», если Дедус нумерует слова в словаре единицы. Помогите Дедусу найти номер данного слова.

Показать ответ и решение
s = "ФИКС"
count = 0
for i in s:
    for j in s:
        for k in s:
            for l in s:
                word = i + j + k + l
                count += 1
                if word == "СКИФ":
                    print(count)

Ответ: 229

Ошибка.
Попробуйте повторить позже

Задача 69#45092

Гений Евгеньевич решил провести эксперимент, узнать кто эффективнее справляется с работой фиксики или кработы. Известно, что один фиксик может починить одно устройство за одну минуту, так же как и один кработ a1 = 1  . Когда фиксиков становится двое, они все еще работают с той же скорость и чинят один прибор в минуту a = 1
 2  (зато им весело вместе), но, когда их становится больше двух, эффективность растет по следующей формуле ai = ai−1 + ai− 2  . У кработов все проще, каждый новый кработ ускоряет работу на 10000  устройств в минуту. Помогите Гению Евгеньевичу понять, кто же эффективнее 30  фиксиков или 30  кработов. Напишите в ответе «фиксики» или «кработы», в зависимости от того, кто выиграл.

Показать ответ и решение
x1 = 1
x2 = 1
for i in range(3, 31):
    x1, x2 = x2, x1 + x2
if x2 > (1 + 10000 * 29):
    print("фиксики")
else:
    print("кработы")

Ответ: фиксики

Ошибка.
Попробуйте повторить позже

Задача 70#45093

В доме у Виктории Ю. внезапно поломалась вся техника, из-за чего Виктория начала плакать. Когда фиксики об это узнали, они взяли помогаторы и примчались спасать Викторию. Виктория начнет радоваться, как только будет починена вся техника в ее доме. Пока фиксики работают, они тратят по одному проценту своего запаса сил в минуту. Когда запас сил становится равен 20%  , фиксики уходят на зарядку, пока не наберут 80%  (на это требуется 2  минуты), потом они продолжают работать. Фиксики стараются починить сначала те приборы, которые требуют меньше всего времени. После починки самого последнего прибора фиксики заряжаются, чтобы улететь к ДимДимычу.

Во входном файле вы получаете число n  — количество приборов в доме у Виктории, затем n  чисел — время починки каждого отдельного прибора. Определите какое количество времени в минутах понадобится фиксикам, чтобы Виктория заулыбалась, если начальный заряд фиксиков 70%

Вложения к задаче
Показать ответ и решение

Решение №1

n = int(input())
counter = 0
ener = 70
a = []
for i in range(n):
    a.append(int(input()))
a.sort()
i = 0
while i != n:
    if (ener - a[i]) > 20:  # Без подзарядки
        counter += a[i]
        ener -= a[i]
        i += 1
    elif (ener - a[i]) == 20:  # Одна подзарядочка и идем дальше
        counter += a[i] + 2
        ener = 80
        i += 1
    else:  # Одна или несколько подзарядок в одном пункте
        counter += (ener - 20) + 2
        a[i] -= (ener - 20)
        ener = 80
print(counter + 2)  # В конце заряжается по условию

Решение №2

n = int(input())
a = []
for i in range(n):
    a.append(int(input()))
a.sort()
ener = 70
time = 0
i = 0
flag = True
while i != n:
    if a[i] - ener + 20 >= 0:
        if i == n - 1 and a[i] - ener + 20 == 0:
            flag = False
        time += min(ener - 20, a[i]) + 2
        a[i] = max(a[i] - ener + 20, 0)
        ener = 80
    else:
        time += a[i]
        ener -= a[i]
        a[i] = 0
    if a[i] == 0:
        i += 1
if flag:
    time += 2
print(time)

Ответ: 1073

Ошибка.
Попробуйте повторить позже

Задача 71#46896

Максим хочет написать программу, которая принимает два параметра. Первый параметр будет равен 1  , когда Максим отдыхает, а второй параметр будет равен 1  , когда Максим учиться. В противных случаях параметры равны 0  . Программа должна возвращать True, если Максим отдыхает и не учиться (поскольку именно при этих обстоятельствах Максиму нужно установить сигнал тревоги). В противном случае программа должна возвращать False. В ответ укажите результат работы программы для первого параметра 0  и второго параметра 1  .

Показать ответ и решение
  first = int(input())
  second = int(input())
  print(first == 1 and second == 0)

Ответ: False

Ошибка.
Попробуйте повторить позже

Задача 72#46897

Напишите программу, которая принимает на вход имя марафонца и возвращает количество световых мечей, принадлежащих этому человеку. Кстати, единственный человек, владеющий световыми мечами — Лера. У неё их  18  , что является потрясающим количеством световых мечей. У всех остальных марафонцев 0  световых мечей. В ответ укажите результат работы программы для имени «Лера».

Показать ответ и решение
  name = input()
  if name == "Лера":
      print(18)
  else:
      print(0)

Ответ: 18

Ошибка.
Попробуйте повторить позже

Задача 73#46898

Олегу только что исполнилось 18  лет, и он хочет знать, сколько лет ему будет в будущем, например, в 2099  или   3044  году. Его родители не успевают посчитать, поэтому они попросили Вас помочь им, написав программу, которая сможет ответить на бесконечные вопросы Олега.

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

Обеспечьте вывод в следующем формате:

  • для дат в будущем «Олегу ... года (лет)»;
  • для дат в прошлом «Олег родится через ... года (лет)»;
  • если год рождения равен запрашиваемому году, то возвращается: «Олег родился в этом году!».

«...» должны быть заменены числом, подсчитанным Вашей программой. В ответ укажите результат работы программы для года рождения 2005  и году, по отношению к которому нужно считать возраст 21391  .

Показать ответ и решение
  year_of_birth = int(input())
  current_year = int(input())
  difference = current_year - year_of_birth

  if difference <= -1:
      print("Олег родится через "+ str(-difference) +" года (лет)")
  elif difference == 0:
      print("Олег родился в этом году!")
  elif difference >= 1:
      print("Олегу " + str(difference) + " года (лет)")

Ответ: Олегу 19386 года (лет)

Ошибка.
Попробуйте повторить позже

Задача 74#46899

Виктория работает водителем автобуса. Однако она стала очень популярна среди жителей города. Из-за большого количества пассажиров, желающих сесть в ее автобус, ей иногда приходится сталкиваться с проблемой нехватки мест в автобусе! Она просит Вас написать простую программу, которая сообщит ей, сможет ли она вместить всех пассажиров. Программа должна принимать три параметра: n  — количество людей, которое может вместить автобус, не считая водителя; k  — количество людей в автобусе, не считая водителя; m  — количество людей, ожидающих посадки в автобус, исключая водителя.

Если места достаточно, возвращается 0  , в противном случае возвращается количество пассажиров, которых Виктория не может взять в автобус. В ответ укажите результат работы программы для параметров: 22  , 7  , 16  .

Показать ответ и решение
  n = int(input())
  k = int(input())
  m = int(input())
  rem = n - k

  if rem <= m:
      print(m - rem)
  else:
      print(0)

Ответ: 1

Ошибка.
Попробуйте повторить позже

Задача 75#46900

Анна считает, что числа, заканчивающиеся нулями, скучны. Они могут быть забавными в нашем мире, но не в мире Анны. Помогите Анне избавься от них. Напишите программу которая принимает на вход одно число и делает из него, в случае необходимости, число, которое не будет заканчиваться нулями(т.е. убирает нули справа).

Например: входное число 4500200  . Вывод 45002  .

В ответ укажите результат работы программы для числа 10450250000  .

Показать ответ и решение
  n = int(input())
  if n == 0:
      print(n)
  else:
      while n % 10 == 0:
          n = n // 10
      print(n)

Ответ: 1045025

Ошибка.
Попробуйте повторить позже

Задача 76#46901

Ксения с помощью нового СЕКРЕТНОГО!!! способа представления чисел хочет представить любое число в единички и нули. Если десятичная цифра числа ниже 5  , то оно заменяется на 0  . Если десятичная цифра числа больше или равна        5  , то оно заменяется на 1  . Помогите Ксении написать программу. В ответ укажите результат работы программы для числа 1946  .

Например: входное число 7219  . Вывод 1001  .

Показать ответ и решение
  n = str(input())
  result = ""
  for num in n:
      if int(num) < 5:
          result += "0"
      else:
          result += "1"
  print(result)

Ответ: 0101

Ошибка.
Попробуйте повторить позже

Задача 77#46902

Илья очень любит восклицательные знаки и до ужаса ненавидит гласные буквы. Помогите Илья написать программу, которая получает на вход строку из букв нижнего регистра(т.е. маленькие) и заменяет в ней все гласные буквы на восклицательный знак. Буквы а, я, у, ю, о, е, ё, э, и, ы — гласные. В ответ укажите результат работы программы для строки «даровате».

Показать ответ и решение
  vowel = "аяуюоеёэиы"
  s = input()
  new_s = ""
  for letter in s:
      if letter in vowel:
          new_s += "!"
      else:
          new_s += letter
  print(new_s)

Ответ: д!р!в!т!

Ошибка.
Попробуйте повторить позже

Задача 78#49441

Написать программу, которая подсчитывает в массиве количество чисел, кратных 3  . Ответ вывести для a = [1,2,3,4,5,6,7,8,9,10]

Показать ответ и решение
a = [1,2,3,4,5,6,7,8,9,10]
n = len(a)
k = 0
for i in range(n):
    if a[i]%3 == 0:
        k+=1
print(k)

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 79#49444

Что выведет программа?

a = [1,2,3,4,5,6,7,8,9,10]
n = len(a)
k = 0
for i in range(n):
    if a[i]%3 == 0:
        k+=1
print(k)

Показать ответ и решение

Переписываем программу и запускаем. Получаем ответ.

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 80#52704

В текстовом файле содержится набор из 100  различных натуральных чисел, найдите индексы двух чисел (индексация с 0  ), сумма которых равна 199  . В ответе запишите найденные индексы через пробел в порядке возрастания.

Вложения к задаче
Показать ответ и решение
    f = open("1.txt")
    a = []
    for i in range(100):
        a.append(int(f.readline()))

    for i in range(100):
        for j in range(i + 1, 100):
            if (a[i] + a[j] == 199):
                print(i, j)

Ответ: 4 73
Рулетка
Вы можете получить скидку в рулетке!