cs50 pset1 credit зачем использовать по модулю? - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь решить cs50 pset1 с проверкой кредитной корзины.

(https://www.youtube.com/watch?time_continue=211&v=dF7wNjsRBjI&feature=emb_logo)

В соответствии с этим нам нужно умножить каждый альтернативный ди git на 2, а затем сложите все цифры. Число недопустимо, если последняя ди git суммы равна нулю.

В вопросе упоминается использование по модулю, но я не уверен, правильно ли я его понимаю.

Предложено использовать по модулю, чтобы найти последний ди git числа. Я не уверен, что должен делать по модулю. Например, для 4003600000000014 указано, что число равно 4. Я полагаю, что мне нужно проверять каждую ди git, пока не найду результат по модулю.

Но номер кредитной карты может содержать одну или несколько цифр. Таким образом, мы не можем использовать модуль для нахождения последнего ди git. Я что-то упустил?

1 Ответ

1 голос
/ 27 апреля 2020

У меня тоже вопрос по кредиту, но с другой проблемой. Я считаю, что функция modulo используется для извлечения каждого ди git в число справа налево. Вам нужно будет на l oop превысить (длину числа) количество раз, после которого последнее выполнение l oop даст вам первый di git (самый левый)

. l oop по существу будет содержать:

  • Выполняется столько же раз, сколько его длина.
  • Digit=num%10
  • num=num/10 // Отбрасывать самый правый di git, поэтому при следующем запуске будет извлечен новый di git

В конце di git будет равен самому левому di git.

Это будет работать для карт VISA, так как требуется только первая ди git. Но для других, таких как AMEX, вам нужно будет включить оператор if, чтобы вытащить второй ди git также в прогоне до последнего.

Надеюсь, это поможет!

...