Python. Остаток от деления
Для выполнения ряда задач необходимо находить остаток деления целого числа на целое число. Например, нахождение последней цифры числа в различных системах счисления, при проверке делимости. В Python для этого служит оператор %.
Для положительных чисел:
n=int(input()) #n=86
d=n%10 #d=6 - последняя цифра числа n в 10 СС
if n%6==0:
print("Число n делится на 6")
При нахождении остатка целочисленного деления отрицательно числа на положительное результат Python будет отличаться от ожидаемого. Например, остаток от деления -86 на 10 равен 4. Это соответствует теореме математики: -86=-9*10+4. Остаток не может быть отрицательным числом.
print(-86//10) #-9
print(-86%10) #4
Если необходимо найти последнюю цифру отрицательного числа в 10СС, то необходимо находить остаток от деления модуля отрицательно числа на 10:
n=int(input()) #n=-86
d=abs(n)%10 #d=6 - последняя цифра числа n в 10 СС
Если необходимо проверить делимость отрицательного числа, то условие не изменяется, т.к. остаток от деления также будет равен нулю:
n=int(input()) #n=-86
if n%6==0:
print("Число n делится на 6")
При нахождении остатка целочисленного деления положительного числа на отрицательное результат действия в Python не совпадает с теоремой математики. Остаток - отрицательное число. Например, в Python 86%10 = -4, вычисляем -9*(-10) - 4 = -90, а не 86.
print(86//-10) #-9
print(86%-10) #-4
При нахождении остатка целочисленного деления отрицательного числа на отрицательное остаток - отрицательное число. Например, в Python -86%(-10) = -4, вычисляем 8*(-10) - 6 = -86.
print(-86//-10) #8
print(-86%-10) #-6
Будьте внимательны! Прежде чем решать задачу с большими числами, проведите ряд экпериментов в Python и вычислений, сравните результат с условиями задачи и примером (если он приведен в задаче).
Используемые источники
Остаток от деления отрицательных чисел https://yourtutor.info/остаток-от-деления-отрицательных
Арифметика остатков https://mat.1sept.ru/view_article.php?ID=200102102
Комментарии
Отправить комментарий