Войти Создать аккаунт

Строки · 28 из 43

Номер карты по Луну

Лабораторная «строки». Борис Аркадьевич достаёт банковскую карту, закрывает пальцем имя и спрашивает: как терминал за долю секунды понимает, что кассир ошибся цифрой, ещё до связи с банком? Ответ — алгоритм Луна: последняя цифра номера контрольная, и сумма цифр, посчитанная по особому правилу, обязана делиться на 10.

Что сделать

Проверьте номер карты по алгоритму Луна: сложите цифры, удваивая каждую вторую справа, и посмотрите, делится ли сумма на 10.

Что приходит

  • nomer — номер строкой; между группами цифр бывают пробелы

Что вернуть

True, если номер проходит проверку, иначе False; знак, кроме цифры и пробела, или ни одной цифры — False.

Допишите функцию luna в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

Пример

Номер 4111 1111 1111 1111: справа пятнадцать единиц, слева четвёрка. Удваиваются восемь цифр — семь единиц дают по 2, четвёрка даёт 8; остальные восемь единиц — по 1. Сумма 14 + 8 + 8 = 30 делится на 10 — True.

Тот же пример кодом
Вызов
luna("4111 1111 1111 1111")
Вернуть
True
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.