Разбор задачи: Fizz Buzz

Предложенный нами код решения:

def fizz_buzz(n):
    """
    :param n: целое число
    :return: список строк с результатами для чисел от 1 до n
    """
    result = []
    for i in range(1, n + 1):
        if i % 3 == 0 and i % 5 == 0:
            result.append("FizzBuzz")
        elif i % 3 == 0:
            result.append("Fizz")
        elif i % 5 == 0:
            result.append("Buzz")
        else:
            result.append(str(i))
    return result

Пояснение шагов:

  1. Инициализация пустого списка:

    result = []
    

    Мы начинаем с пустого списка result, в который будем добавлять результаты для каждого числа от 1 до n.

  2. Перебор чисел от 1 до n:

    for i in range(1, n + 1):
    

    В цикле for перебираем числа от 1 до n, включая n. Для каждого числа выполняются проверки, соответствующие условиям задачи.

  3. Условие для чисел, делящихся на 3 и на 5:

    if i % 3 == 0 and i % 5 == 0:
        result.append("FizzBuzz")
    

    Для каждого числа сначала проверяется, делится ли оно на 3 и на 5 одновременно (с помощью оператора %). Если это так, добавляем строку "FizzBuzz" в список.

  4. Условие для чисел, делящихся только на 3:

    elif i % 3 == 0:
        result.append("Fizz")
    

    Если число делится только на 3, то добавляем строку "Fizz".

  5. Условие для чисел, делящихся только на 5:

    elif i % 5 == 0:
        result.append("Buzz")
    

    Если число делится только на 5, то добавляем строку "Buzz".

  6. Если число не делится ни на 3, ни на 5:

    else:
        result.append(str(i))
    

    В случае, если число не делится ни на 3, ни на 5, просто добавляем его как строку.

  7. Возврат списка:

    return result
    

    После завершения цикла возвращается список result, который содержит все нужные строки для чисел от 1 до n.

Пример работы:

Пример 1:

fizz_buzz(3)
  • Перебираются числа 1, 2 и 3.
  • Для 1: не делится ни на 3, ни на 5 → добавляем "1".
  • Для 2: не делится ни на 3, ни на 5 → добавляем "2".
  • Для 3: делится на 3 → добавляем "Fizz".

Вывод: ["1", "2", "Fizz"].

Пример 2:

fizz_buzz(5)
  • Перебираются числа 1, 2, 3, 4 и 5.
  • Для 1: не делится → добавляем "1".
  • Для 2: не делится → добавляем "2".
  • Для 3: делится на 3 → добавляем "Fizz".
  • Для 4: не делится → добавляем "4".
  • Для 5: делится на 5 → добавляем "Buzz".

Вывод: ["1", "2", "Fizz", "4", "Buzz"].

Пример 3:

fizz_buzz(15)
  • Для чисел 1-15 возвращается: ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz", "13", "14", "FizzBuzz"].

 



Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии