Задача 3. Индекс массы тела

Алексей работает диетологом в частной клинике, каждый день он принимает пациентов разных возрастов и с разными показателями роста (в метрах) и веса (в кг). Для каждого человека ему нужно считать индекс массы тела — это вес поделить на рост в квадрате. По государственным стандартам индекс округляется до двух знаков после точки. Затем по этому индексу определяется, всё ли в порядке у человека с массой тела: если до 18.5, то недобор; до 25 — всё нормально, до 30 уже идёт избыток, а после 30 — ожирение. Напишите такую программу для Алексея.

Решение:

height = float(input('Ваш рост: '))
weight = float(input('Ваш вес: '))
bmi = round(weight / height ** 2, 2)
print('Ваш индекс массы тела:', bmi)
u_vas = 'У вас '
massa = ' масса тела'

if bmi < 18.5:
  print(u_vas + 'недостаточная' + massa)
elif bmi < 25:
  print(u_vas + 'нормальная' + massa)
elif bmi < 30:
  print(u_vas + 'избыточная' + massa)
else:
  print(u_vas + 'ожирение!') 


Задача 10. Поменять местами: не всё так просто!

Мы умеем менять местами строковые переменные и знаем, что в переменных, кроме строк, можно хранить и числа. Напишите программу, которая меняла бы значения двух переменных местами, но без использования третьей переменной и без использования синтаксического сахара, который мы разбирали, а именно — без конструкции a,b = b,a. В переменные будут вводиться только числа.

Изменять, удалять, менять местами 1, 2 строку, первый и второй print нельзя. Но между 3-й и 5-й строчкой можно вставлять сколько угодно строк кода, не трогая последний принт.

Решение:

a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))
print(a, b)

a = a + b
b = a - b
a = a - b

print(a, b)

Задача 9. В обратном порядке

Реализуйте программу, которая получает на вход четырёхзначное число и выводит его на экран в обратном порядке. Само число при этом изменять нельзя, то есть нужно обойтись без переприсваивания. Однако можно использовать сколько угодно переменных.

Пример ввода: 1234.
Пример вывода: 4321.

Решение:

n = int(input('Введите любое (четырёх значное) число: '))
n1 = n % 10
n2 = n % 100 // 10
n3 = n // 100 % 10
n4 = n // 1000

n2n = n1 * 1000 + n2 * 100 + n3 * 10 + n4
print(n2n)


Задача 8. Режем число на части

Реализуйте программу, которая получает на вход четырёхзначное число и выводит на экран каждую его цифру отдельно (в одну строчку либо каждая цифра в новой строчке). Само число при этом изменять нельзя, то есть нужно обойтись без переприсваивания. Однако можно использовать сколько угодно переменных.

Решение:

n = int(input('Введите любое (четырёх значное) число: '))
n1 = n // 1000
n2 = n // 100 % 10
n3 = n // 10 - n1 * 100 - n2 * 10
n4 = n % 10

print(n1, n2, n3, n4)


Задача 7. Поездка по кругу

Вася решил потренироваться перед марафоном и покататься вокруг Москвы на скорость. Длина дороги — 115 километров.
Вася стартует с нулевого километра и едет со скоростью v километров в час.
На какой отметке он остановится через t часов?

Реализуйте программу, которая спрашивает у пользователя v и t, и выводит целое число от 0 до 114 — номер километра, на котором остановится Вася. Учтите, что он может прокатиться больше одного круга.

Решение:

v = int(input('Введите скорость: '))
t = int(input('Введите время (в часах): '))
lenght = 115

print((v * t) % lenght)


Задача 6. Сумма последних цифр

Реализуйте программу, которая запрашивает два числа у пользователя. После этого у каждого числа возьмите две последние цифры. Получившиеся два числа сложите и выведите на экран.

Пример:
Введите первое число: 456
Введите второе число: 123
Сумма: 79

Решение:

a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))

res = a % 100 + b % 100
print('Сумма:', res)


Задача 5. Часы

Напишите программу, которая получает на вход число n — количество минут, — затем считает, сколько это будет в часах и сколько минут останется, и выводит на экран эти два результата.

Решение:

minutes = int(input('Введите количество минут: '))
# Вариант №1
clock = (minutes // 60) % 24
minute = (minutes - (minutes // 60) * 60) % 60
print(clock, minute)

# Вариант №2
clock = minutes // 60
minute = (minutes - (minutes // 60) * 60) % 60
print(clock, minute)


Задача 4. Площадь треугольника

Напишите программу, которая запрашивает у пользователя длины двух катетов в прямоугольном треугольнике и выводит его площадь.
Формула:
S = ab/2

Решение:

leg1 = int(input('Введите длину первого катета: '))
leg2 = int(input('Введите длину первого катета: '))

s = leg1 * leg2 / 2
print(s)


Задача 3. Следующее и предыдущее

В олимпиаде по программированию участвовали 1000 человек, и программа автоматически распределила их по количеству баллов. Иногда количество баллов у участников одинаковое, и тогда комиссии нужно посмотреть фамилии одного из таких участников, а также его соседей, это реализует специальная часть алгоритма.

Напишите программу, которая получает от пользователя число и выводит на экран два ответа — следующее и предыдущее число.

Результат:
Введите число: 5
После числа 5 идет число 6
До числа 5 идет число 4

Решение:

number = int(input('Введите число: '))
number_next = number + 1 if number >= 0 else number - 1
number_prev = number - 1 if number >= 0 else number + 1

print("После числа", number, "идет число", number_next, end=".\n")
print("До числа", number, "идет число", number_prev, end=".\n")


Задача 10. Яма

В одной компьютерной текстовой игре рисуются всяческие элементы ландшафта.
Напишите программу, которая получает на вход число N и выводит на экран числа в виде “ямы”:

Задача 10. Яма

Решение:

height = int(input('Укажите высоту ямы: '))
row = height - 1
print()

while row >= 0:
  for i in range(-height, height + 1):
    if abs(i) > row:
      print(abs(i), end = '')
    elif i == 0:
      print(end = '')
    else:
      print('.', end = '')
  row -= 1
  print()


Задача 9. Пирамидка 2

Напишите программу, которая получает на вход количество уровней пирамиды и выводит их на экран.

Задача 9. Пирамидка 2

Решение:

height = int(input('Количество уровней пирамиды: '))
number = 1

for row in range(1, height + 1):
  print('\t' * (height - row), end = '')
  for col in range(row):
    print(number, end = '')
    number += 2
    print('\t' * 2, end = '')
  print()


И ещё один вариант:

height = int(input('Количество уровней пирамиды: '))
lend = len(str(height * (height + 1) // 2 - 1)) + 2
lens = 2 * height * (lend - 1) - lend

for i in range(height) :
  a = (i + 1) * i + 1
  m = range(a, a + 2 * (i + 1) , 2)
  tmp = (' ' * lend).join(list(map(str, m)))
  print('{:^{r}}'.format(tmp, r = str(lens)))


Задача 8. Пирамидка

Задача 8. Пирамидка

Напишите программу, которая выводит на экран равнобедренный треугольник (пирамидку), заполненный символами хэштега «#». Пусть высота пирамиды вводится пользователем.

Задача 8. Пирамидка


Подсказка: вспомните, как выводился колонтитул вида ——!!!!!!—— в прошлом модуле.

Решение:

height = int(input('Введите высоту пирамиды: '))
aggregate = 1

for i in range(height):
  print(' ' * (height - 1 - i), '#' * aggregate, sep = '')
  aggregate += 2


Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts

Задача 7. Наибольшая сумма цифр

Вводится N чисел. Среди натуральных чисел, которые были введены, найдите наибольшее по сумме цифр. Выведите на экран это число и сумму его цифр.

Решение:

seq_num = int(input('Введите количество чисел: '))
summ = 0
max_num = 0
max_sum = 0

for i in range(1, seq_num + 1):
  query = 'Введите ' + str(i) + ' число: '
  number = int(input(query))
  backup_num = number
  while number > 0:
    summ += number % 10
    number //= 10
    if summ > max_sum:
      max_sum = summ
      max_num = backup_num
  summ = 0

print('Число', max_num, 'имеет максимальную сумму цифр:', max_sum)


Задача 6. Сумма факториалов

Напишите программу, которая запрашивает у пользователя число N и находит сумму факториалов 1! + 2! + 3! +… + N!

Решение:

end = int(input('До какого числа считать факториал: '))
partial_factorial = 1
partial_sum = 0

for i in range(1, end + 1):
  partial_factorial *= i
  partial_sum += partial_factorial

print(f'Сумма факториала числа {end} равна {partial_sum}.')


Задача 5. Простые числа

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

Решение:

seq_num = int(input('Сколько чисел будет всего: '))
count = 0

for num in range(1, seq_num + 1):
  number = int(input(f'Введите {num} число: '))
  prime = True
  for i in range(2, num):
    if (num % i == 0):
      prime = False
  if prime:
    count += 1
    print('Это простое число:', number, end = '\n\n')

print()
print('Простых чисел было:', count)