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

Напиши программу, которая шифрует введённый пользователем PIN-код. PIN-код — это числовой код любой длины. Для создания зашифрованной версии PIN-кода программа использует простые…

Запрос пользователя

Напиши программу, которая шифрует введённый пользователем PIN-код. PIN-код — это числовой код любой длины. Для создания зашифрованной версии PIN-кода программа использует простые математические операции, конкатенацию строк и дублирование. Алгоритм работы программы: 1. Пользователь вводит свой PIN-код. 2. Программа увеличивает значение PIN-кода в два раза. 3. Программа объединяет оригинальный PIN-код с результатом умножения. 4. Программа дублирует зашифрованный результат трижды. 5. Программа выводит зашифрованный PIN-код в формате «Зашифрованный пароль: <пароль>».

Ответ нейросети
11 октября 2025 11:37

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

Что делает программа:

  • Вводит PIN как строку (чтобы сохранить ведущие нули).
  • Проверяет, что PIN состоит только из цифр.
  • Преобразует PIN в число и умножает на 2.
  • Объединяет исходный PIN и значение, полученное после умножения.
  • Дублирует полученную строку трижды.
  • Выводит результат в формате: Зашифрованный пароль: <пароль>

Код (Python):

def encrypt_pin(pin_str: str) -> str:
    # Валидация: PIN должен состоять только из цифр
    if not pin_str:
        raise ValueError("PIN не может быть пустым.")
    if not pin_str.isdigit():
        raise ValueError("PIN должен состоять только из цифр.")

    # 1) Преобразуем строковый PIN в число
    pin = int(pin_str)

    # 2) Увеличиваем значение PIN в два раза
    doubled = pin * 2

    # 3) Объединяем оригинальный PIN и результат умножения (как строки)
    combined = pin_str + str(doubled)

    # 4) Дублируем зашифрованный результат трижды
    encrypted = combined * 3

    return encrypted

def main():
    pin_input = input("Введите PIN-код: ").strip()
    try:
        result = encrypt_pin(pin_input)
        print(f"Зашифрованный пароль: {result}")
    except ValueError as e:
        print(f"Ошибка: {e}")

if __name__ == "__main__":
    main()

Пошаговое объяснение соответствующих частей кода:

  • В функции encrypt_pin(pin_str):
    • Проверяем, что строка не пустая и состоит только из цифр.
    • pin = int(pin_str) превращает строку в число, чтобы выполнить умножение.
    • doubled = pin * 2 увеличивает PIN вдвое.
    • combined = pin_str + str(doubled) создаёт строку, состоящую из исходного PIN и числа после умножения.
    • encrypted = combined * 3 повторяет эту строку три раза подряд.
  • Функция main() управляет вводом пользователя и выводом результата в нужном формате.

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

  • Ввод: 1234
  • Уголовный расчёт:
    • doubled = 1234 * 2 = 2468
    • combined = "1234" + "2468" = "12342468"
    • encrypted = "12342468" * 3 = "12342468123424681234246812342468"
  • Вывод: Зашифрованный пароль: 12342468123424681234246812342468

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