Найти наибольшее кратное n меньше, чем х - PullRequest
0 голосов
/ 25 февраля 2019

Какой был бы более питонический способ найти наибольшее число, кратное n, но ниже верхней границы x?

Практический пример:

n = 48 
x = 2636 

48 * 54 = 2592является ближайшим.

Я бы сделал for цикл, пока не перейду x.Какие есть хорошие альтернативы?

Ответы [ 4 ]

0 голосов
/ 26 февраля 2019

Самый питоновский способ, который я мог бы себе представить, был бы для Python 2 или 3:

>>> (x // n) * n
0 голосов
/ 25 февраля 2019

Вы можете использовать операцию по модулю

x-(x%n)

Если верхняя граница должна быть строго ниже, чем x, используйте

x - 1 -((x-1) % n)
0 голосов
/ 25 февраля 2019

Это тоже работает:

print(x - (x%n))
0 голосов
/ 25 февраля 2019

Простейшим способом, вероятно, является использование //:

(x // n) * n

Если число должно быть строго меньше x, используйте x - 1 вместо:

((x - 1) // n) * n

Выражение x // n представляет собой деление по полу x на n, отбрасывая любой остаток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...