Я учусь программировать, и мне было дано следующее задание:
ISBN (международный стандартный номер книги) состоит из 10 цифр.
z 1 z 2 z 3 z 4 z 5 z 6 z 7 z 8 z 9 z 10
Последняя цифра z 10 - контрольная цифра.Это сделано так: во-первых, вы создаете вид кросс-суммы по следующей формуле:
s = 1 * z 1 + 2 * z 2 + 3 * z 3 + 4 * z 4 + 5 * z 5 + 6 * z 6 + 7 * z 7 + 8 * z 8 + 9 * z 9
Контрольная цифра z 10 являетсяостаток от целочисленного деления s, деленный на 11. Для остатка 10 вы пишете x или X. Пример: Для ISBN 3826604237 вы получите контрольную цифру 7.
Расчет:1 * 3 + 2 * 8 + 3 * 2 + 4 * 6 + 5 * 6 + 6 * 0 + 7 * 4 + 8 * 2 + 9 * 3 = 150
остаток от деления 150и 11 равно 7.
Кодовое решение дано следующим образом:
# isbn.py
number = int(input("Please enter a 9-digit number: "))
z9 = number % 10
number = number//10
z8 = number % 10
number = number//10
z7 = number % 10
number = number//10
z6 = number % 10
number = number//10
z5 = number % 10
number = number//10
z4 = number % 10
number = number//10
z3 = number % 10
number = number//10
z2 = number % 10
number = number//10
z1 = number
sum = z1+2*z2+3*z3+4*z4+5*z5+6*z6+7*z7+8*z8+9*z9
checkdigit = sum%11
print("\nCheckdigit:", checkdigit)
Мой вопрос просто: как это работает?Почему я должен вычислять «число // 10» и «число% 10», и это все время?Есть ли название для этого типа алгоритма, и если да, то как он называется?
Я был бы признателен за любой ответ на этот вопрос, и если он кажется вам самым простым, и вы чувствуете, что яЯ трачу ваше время, извините.До сих пор я понимал почти все, что я изучал до сих пор, изучая Python, но эта задача казалась немного сложной (это было в очень ранней главе книги, которую я изучаю на работе), и я застрял и не получилэто из моей головы.
Заранее спасибо и хорошего дня!