Как посчитать сумму чисел с определенным шагом?

rowta

Новичок
Пользователь
Ноя 7, 2022
7
0
1
Помогите решить задачу.

Ведущий решил немного изменить правила предыдущего развлечения. Молодожёны выбирают число step, и теперь тост говорит не каждый пришедший гость, а только первый и каждый последующий пришедший через выбранное число гостей. Например:

  • если step = 1, то как и раньше тост говорит каждый гость;
  • если step = 2, то 1-ый, 3-ий, 5-ый ...
  • если step = 3, то 1, 4, 7, 10 ...
Напиши функцию get_drinks_with_step, которая получает number_of_guests и step и возвращает, сколько нужно порций выпивки для конкурса.

Как и раньше, предлагаем использовать цикл for, но с range с двумя параметрами.


Примеры:
get_drinks_with_step(10, 3) == 22 # (1 + 4 + 7 + 10)
get_drinks_with_step(5, 3) == 5 # (1 + 4)
get_drinks_with_step(18, 10) == 12 # (1 + 11)



КОД НАЧИНАЕТСЯ ТАК:

Код:
def get_drinks_with_step(number_of_guests: int, step: int) -> int:
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Python:
def get_drinks_with_step(number_of_guests: int, step: int) -> int:
    return sum([i for i in range(1, number_of_guests + 1, step)])
 

rowta

Новичок
Пользователь
Ноя 7, 2022
7
0
1
Python:
def get_drinks_with_step(number_of_guests: int, step: int) -> int:
    return sum([i for i in range(1, number_of_guests + 1, step)])
низкий поклон
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
971
219
43
20
Москва
Python:
def get_drinks_with_step(number_of_guests: int, step: int) -> int:
    return sum([i for i in range(1, number_of_guests + 1, step)])
а можно и без генератора
Python:
def get_drinks_with_step(number_of_guests: int, step: int) -> int:
    return sum(range(1, number_of_guests + 1, step))
 

Форум IT Специалистов