Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3537573
А
Аноним
16 декабря 2025 08:28 · публичный вопрос
А
Аноним

придумай задачи на python: по две на if else , for k in range, while

Ответ нейросети
16 декабря 2025 08:28

Ниже шесть задач для практики Python: по две на if-else, for k in range и while. Для каждой задачи добавлено краткое формулирование, пример ввода/вывода, готовое решение и подробное пошаговое объяснение.

  1. Задача на if-else 1: Определение високосного года
  • Формулировка: Пользователь вводит год. Нужно вывести, является ли год високосным.

  • Вход: одно целое число year.

  • Выход: строка "Високосный год" или "Обычный год".

  • Пример:

    • Ввод: 2000
    • Вывод: Високосный год
  • Решение (код): def is_leap_year(year): if year % 400 == 0: return True elif year % 100 == 0: return False elif year % 4 == 0: return True else: return False

year = int(input("Введите год: ")) print("Високосный год" if is_leap_year(year) else "Обычный год")

  • Пошаговое объяснение:
    • Год високосный, если делится на 4, но не на 100, за исключением случаев, когда делится на 400.
    • Сначала проверяем делимость на 400 — если да, год високосный.
    • Затем проверяем делимость на 100 — если да, но не на 400, год не високосный.
    • Затем проверяем делимость на 4 — если да, год високосный.
    • Во всех остальных случаях год не високосный.
  • Временная сложность: O(1).
  1. Задача на if-else 2: Оценка по баллу
  • Формулировка: Вводится балл от 0 до 100. Присваивается буквенная оценка по диапазонам: A 90–100, B 80–89, C 70–79, D 60–69, F ниже 60.

  • Вход: одно целое число score.

  • Выход: строка с буквой-grade.

  • Пример:

    • Ввод: 85
    • Вывод: B
  • Решение (код): score = int(input("Введите балл (0-100): ")) if score >= 90: grade = 'A' elif score >= 80: grade = 'B' elif score >= 70: grade = 'C' elif score >= 60: grade = 'D' else: grade = 'F' print("Оценка:", grade)

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

    • Сначала проверяем самый высокий диапазон (>=90) — если выполняется, ставим A.
    • Далее последовательно проверяем меньшие диапазоны: 80–89, 70–79, 60–69.
    • Все остальные баллы считаем F.
    • Обязательно используем цепочку if/elif/else, чтобы хотя бы одно условие сработало и мы не проверяли лишние условия.
  • Временная сложность: O(1).

  1. Задача на for k in range 1: Печать чётных чисел от 2 до N
  • Формулировка: Пользователь вводит N (N ≥ 2). Нужно вывести все чётные числа от 2 до N включительно.

  • Вход: одно целое число N.

  • Выход: последовательность чётных чисел, разделённых пробелами.

  • Пример:

    • Ввод: 10
    • Вывод: 2 4 6 8 10
  • Решение (код): N = int(input("Введите N: ")) evens = [k for k in range(2, N + 1, 2)] print(*evens)

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

    • range(2, N+1, 2) генерирует числа начиная с 2 до N включительно с шагом 2.
    • Мы собираем их в список и выводим через распаковку, чтобы пробелы разделяли значения.
    • Альтернатива: можно выводить в цикле с пробелами, но список и распаковка проще и читаема.
  • Временная сложность: O(N/2) ≈ O(N).

  1. Задача на for k in range 2: Список квадратов чисел от 1 до N
  • Формулировка: Пользователь вводит N. Нужно вывести квадраты чисел от 1 до N.

  • Вход: одно целое число N (N ≥ 1).

  • Выход: последовательность квадратов: 1^2, 2^2, ..., N^2.

  • Пример:

    • Ввод: 4
    • Вывод: 1 4 9 16
  • Решение (код): N = int(input("Введите N: ")) squares = [k * k for k in range(1, N + 1)] print(*squares)

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

    • range(1, N+1) перебирает числа от 1 до N.
    • Каждый элемент возводим в квадрат и добавляем в список.
    • Выводим элементы списка через пробел.
  • Временная сложность: O(N).

  1. Задача на while 1: НОД двух чисел (алгоритм Евклида)
  • Формулировка: Вводятся два положительных числа a и b. Нужно найти их наибольший общий делитель (НОД).

  • Вход: два целых числа a, b.

  • Выход: НОД(a, b).

  • Пример:

    • Ввод: 48 18
    • Вывод: 6
  • Решение (код): a = int(input("Введите a: ")) b = int(input("Введите b: ")) while b: a, b = b, a % b print("НОД:", a)

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

    • Используется алгоритм Евклида: НОД(a, b) = НОД(b, a mod b).
    • Пока b не станет 0, заменяем a на b, а b на остаток a mod b.
    • Когда b становится 0, последнее ненулевое значение a — это НОД.
  • Временная сложность: O(log min(a, b)).

  1. Задача на while 2: Факториал числа n
  • Формулировка: Вводится неотрицательное n. Нужно вычислить n! (факториал).

  • Вход: одно целое число n (n ≥ 0).

  • Выход: n!

  • Пример:

    • Ввод: 5
    • Вывод: 120
  • Решение (код): n = int(input("Введите n (n ≥ 0): ")) fact = 1 i = 2 while i <= n: fact *= i i += 1 print(f"{n}! = {fact}")

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

    • Факториал n! определяется как произведение 1×2×...×n; для n=0 результат 1 (опционально можно учесть отдельно).
    • Начинаем с fact = 1 и умножаем на каждое число от 2 до n.
    • Итоговое значение — факториал.
  • Временная сложность: O(n).

Если хочешь, могу адаптировать задачи под конкретный класс или тему (например, заменить примеры на задачи с строками или списками, добавить обработку ошибок ввода и тесты).