Задача 9. Выражение

Дано число x.
Напишите программу для вычисления следующего выражения

((x-1)(x-3)(x-7)…(x-63)/
((x-2)(x-4)(x-8)…(x-64))

Решение:

x = int(input('Введите число X: '))
numerator = 1
denominator = 1

# range - (1)+2=(3)+3+1=(7)+7+1=(15)+15+1=(31)+31+1=(63)
# or - (2)-(4)-(8)-(16)-(32)-(64)
for num in range (1, 7):
  exp1 = (x - (2 ** num - 1))
  numerator *= exp1
  exp2 = (x - 2 ** num)
  denominator *= exp2
  #print('Числитель -', numerator, 'Знаменатель -', denominator)

if denominator == 0:
  print('На 0 делить нельзя!')
else:
  print(numerator / denominator)


Задача 8. Сумма ряда

Дано натуральное число N. Напишите программу для вычисления следующей суммы ряда (начиная с единицы).

S = 1 — 1/2 + 1/4 — 1/8 + … (-1)**N * 1/2**N

Решение:

nat = int(input('Введите натуральное число: '))
start = 1
sumRow = 0

for i in range(nat):
  sumRow += start
  start *= -1/2
  print(i, start, sumRow)

print(sumRow)


Задача 7. Стипендия

Ежемесячная стипендия студента составляет educational_grant руб., а расходы на проживание превышают стипендию и составляют expenses руб. в месяц. Рост цен ежемесячно увеличивает расходы на 3%, кроме первого месяца.

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

Решение:

educational_grant = int(input('Введите стипендию: '))
sumEd = 0 # Сумма дохода
expenses = int(input('Введите расходы: '))
sumEx = 0 # Сумма расхода
percent = 0 # В первый месяц не считаем

for mounth in range(0, 10):
  sumEd += educational_grant
  sumEx = sumEx + expenses + percent
  percent = sumEx * 3 / 100
  #print(mounth + 1, '-', sumEd, '/', sumEx)

print('у родителей попросить: ', round(sumEx - sumEd, 2))


Задача 6. Письмо

У нас есть квадратный конверт размера 12х12 сантиметров и письмо на квадратном листе бумаги, которое не помещается в конверт.

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

Решение:

length = int(input('Укажите размер письма: '))
step = length // 4
count = 0
size = 12

for i in range(length, 12, - step):
  if size < length:
    size *= 2
    count += 2

print(count)


Задача 5. Функция 2

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

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

Сама функция выглядит так: y = x**3 + 2x**2 — 4x + 1

Пример:
Введите начало отрезка: -2
Введите конец отрезка: 2
Введите шаг: -1
В точке 2 функция равна 9
В точке 1 функция равна 0
В точке 0 функция равна 1
В точке -1 функция равна 6
В точке -2 функция равна 9

Решение:

begin = int(input('Введите начало отрезка: '))
end = int(input('Введите конец отрезка: '))
step = int(input('Введите шаг: '))
function = 0

for i in range(end, begin - 1, step):
  function = i ** 3 + 2 * i ** 2 - 4 * i + 1
  print('В точке {0} функция равна {1}'.format(i, function))


Задача 4. Отрезок

Напишите программу, # которая считывает с клавиатуры два числа a и b, считает и выводит на консоль среднее арифметическое всех чисел из отрезка [a; b], которые кратны числу c.

Подсказка: (a и b являются промежутком, а c для проверки кратности).

Решение:

begin = int(input('Введите первое число: '))
end = int(input('Введите второе число: '))
multiplicity = 2
summ = 0
count = 0

for number in range(begin, end + 1):
  if number % multiplicity == 0:
    summ += number
    count += 1

print(summ / count)


Задача 3. Это будет бомба

Мы разрабатываем пошаговую игру по мотивам боевика. Игрок — главный герой и должен обезвредить бомбу, которая взорвётся через N секунд. Программа спрашивает пользователя хочет ли он обезвредить бомбу сейчас.
Если ответ “0” (то есть “нет”), то счетчик бомбы уменьшается. Если он достиг нуля, то программа выдаёт сообщение “Бомба взорвалась”, а если не достиг, то программа вновь переспрашивает, не хочет ли игрок обезвредить бомбу, и сообщает, сколько времени осталось до взрыва..
Если ответ “да”, то программа выводит на экран сообщение о том, что бомба обезврежена и сколько секунд оставалось до взрыва.

Используйте цикл for.

Решение:

beforeExplosion = int(input('Сколько секунд до взрыва: '))
remainder = 0

for i in range(beforeExplosion, 0, -1):
  print('До взрыва осталось {0} секунд.'.format(i))
  neutralize = int(input('Хотите обезвредить бомбу сейчас? (0 - нет, 1 - Да) '))
  if neutralize == 1 and i > 0:
    print('Бомба обезврежена. До взрыва оставалось {0} секунд.'.format(i))
    remainder = i
    break

if remainder == 0:
  print('Бомба взорвалась.')


Задача 2. Долги

МирПрогБанк наконец-то разделил законопослушных граждан и должников и поместил их в разные базы. Но банк не торопится как-то слишком сильно давить на возврат денег. Сейчас операторам банка дали задание позвонить каждому пятому должнику из списка (они нумеруются с нуля) и спросить, сколько примерно денег каждый из них задолжал банку.
Напишите программу, которая принимает на вход количество должников, затем спрашивает у каждого пятого (начиная с 0) его долг. В конце выводится общая сумма долгов.

Пример:

Введите количество должников: 13
Должник с номером 0
Сколько должны? 1000
Должник с номером 5
Сколько должны? 5000
Должник с номером 10
Сколько должны? 2000
Общая сумма долга: 8000


ЧИТАТЬ ДАЛЕЕ …

Задача 1. Космическая еда

Ваш космический корабль потерпел крушение на пустынной планете. Еда здесь не растёт, но вы спасли из обломков 100-килограммовый мешок гречки. Из прошлого опыта вы знаете, что если будете экономно питаться, то у вас будет уходить по 4 килограмма гречки в месяц.
Чтобы прикинуть гречневый бюджет, вы решили написать программу, которая выведет информацию о том сколько килограммов гречки у вас должно быть в запасе через месяц, два и так далее, пока она не закончится.

Используйте цикл for.

ЧИТАТЬ ДАЛЕЕ …

Задача 10. Потерянная карточка

Для настольной игры используются карточки с номерами от 1 до N. Одна карточка потерялась. Найдите ее, зная номера оставшихся карточек.
Вводится число N, далее еще N − 1 чисел: номера оставшихся карточек (различные числа от 1 до N).
Программа должна вывести номер потерянной карточки.

Решение:

lost = 0
n = int(input('До какого номера карточки в игре: '))

# Сумма всех карточек
for i in range(1, n + 1):
  lost += i

for i in range(n - 1):
  lost -= int(input('Введите номер {0} оставшейся карточки: '.format(i + 1)))

print('Потеряна карточка с номером:', lost)



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

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

Задача 9. Теперь можно посчитать и свою

Пока бухгалтер считала среднюю зарплату сотрудников, ей стало интересно, а не зря ли она работает столько времени на одном месте? Ей захотелось узнать, увеличивается ли её зарплата с каждым месяцем или нет.
Пользователь вводит 10 чисел.
Напишите программу, которая проверяет, упорядочены ли они по возрастанию.

Решение:

money = 0
score = 0

for i in range(1, 11):
  money1 = int(input('Введите сумму вашей зарплаты за {0} месяц: '.format(i)))
  if money > money1:
    score += 1
  money = money1

if score > 0:
  print('Зарплата возрастает не упорядоченно...')
else:
  print('Зарплата возрастает упорядоченно...')



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

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

Задача 8. Замечательные числа

Напишите программу, которая находит и выводит все двузначные числа, которые равны утроенному произведению своих цифр. К таким относятся, например, 15 и 24.

Решение:

for i in range(10, 100):
  if (i // 10) * (i % 10) * 3 == i:
    print(i)



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

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

Задача 7. Отрезок

Напишите программу, которая считывает с клавиатуры два числа a и b, считает и выводит на консоль среднее арифметическое всех чисел из отрезка [a; b], которые кратны числу 3.

Решение:

count = 0
summa = 0

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

for i in range(a, b + 1):
  if i % 3 == 0:
    count += 1
    summa += i

print('Среднее арифметическое всех чисел от ', a, ' до ', b, ', которые кратны числу 3 = ', summa / count, sep = '')



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

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

Задача 6. Успеваемость в классе

В классе N человек. Каждый из них получил за урок по информатике оценку: 3, 4 или 5, двоек сегодня не было.
Напишите программу, которая получает список оценок — N чисел — и выводит на экран сообщение о том, кого сегодня больше: отличников, хорошистов или троечников.

Решение:

three = 0
four = 0
five = 0
student = int(input('Введите число учеников: '))

for i in range (1, student + 1):
  n = int(input('Введите оценку {0} ученика: '.format(i)))
  if n == 5:
    five += 1
  elif n == 4:
    four += 1
  elif n == 3:
    three += 1

if five > four and five > three:
  print('Отличников сегодня больше')
elif four > five and four > three:
  print('Хорошистов сегодня больше')
elif three > five and three > four:
  print('Троечников сегодня больше')



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

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

Задача 5. Факториал

Мы всё ближе и ближе подбираемся к серьёзной математике. Одна из классических задач — задача на нахождение факториала числа. И в будущем мы с ней ещё встретимся.

Дано натуральное число N. Напишите программу, которая находит N! (N факториал)
Запись N! означает следующее:

N! = 1 * 2 * 3 * 4 * 5 * … * N
Пример:
Введите число: 5
Факториал числа 5 равен 120

Решение:

res = 1
number = int(input('Введите число: '))
for i in range(1, number + 1):
  res *= i

print('Факториал числа', number, 'равен', res)



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

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