• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 5. Цикл while

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Вычисление числа Фибоначчи»

Вы — исследователь в фэнтезийном мире, изучающий магические кристаллы. Вы обнаружили, что эти кристаллы растут по особому закону, который очень напоминает древнюю математическую последовательность.

  • В самом начале (нулевой месяц) у вас нет ни одного целого кристалла, только магическая пыль. Результат для 0 равен 0.
  • К концу первого месяца из пыли формируется 1 кристалл. Результат для 1 равен 1.
  • К концу каждого следующего месяца количество кристаллов становится равным сумме количеств кристаллов за два предыдущих месяца.

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

Технические требования:

  1. Программа должна запросить у пользователя одно целое число n — номер месяца.
  2. Для вычисления необходимо использовать цикл while.
  3. Программа должна корректно обрабатывать особые случаи: n = 0 и n = 1.
  4. Если пользователь вводит отрицательное число или текст вместо числа, программа должна вывести сообщение об ошибке: "Ошибка: введено некорректное значение."
  5. Результат нужно вывести в формате: "Число Фибоначчи для n = [месяц] равно: [результат]".

 

Формат ввода

Номер месяца n для расчёта (целое неотрицательное число).

Формат Вывода

Итоговое число кристаллов (число Фибоначчи) в виде форматированной строки или сообщение об ошибке (строка).

Пример

Ввод

10

Вывод

Число Фибоначчи для n = 10 равно: 55

Подсказка

Тут подсказки не будет, решай сам!

main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Запрашиваем у пользователя номер месяца в виде строки
n_str = input()

# Проверяем, состоит ли введенная строка только из цифр
if not n_str.isdigit():
    # Если нет, выводим сообщение об ошибке
    print("Ошибка: введено некорректное значение.")
else:
    # Преобразуем строку в целое число
    n = int(n_str)

    # Обрабатываем базовые случаи n=0 и n=1
    if n == 0:
        # Для 0-го месяца результат 0
        result = 0
        print(f"Число Фибоначчи для n = {n} равно: {result}")
    elif n == 1:
        # Для 1-го месяца результат 1
        result = 1
        print(f"Число Фибоначчи для n = {n} равно: {result}")
    else:
        # Инициализируем первые два числа последовательности
        a, b = 0, 1
        # Инициализируем счетчик, начинаем со второго числа, так как 0 и 1 уже есть
        count = 1

        # Запускаем цикл, который будет работать, пока мы не достигнем нужного месяца n
        while count < n:
            # Вычисляем следующее число Фибоначчи
            # a становится b, а b становится суммой старых a и b
            a, b = b, a + b
            # Увеличиваем счетчик на 1
            count += 1
        
        # После завершения цикла в переменной 'b' находится n-ое число Фибоначчи
        result = b
        print(f"Число Фибоначчи для n = {n} равно: {result}")

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!