Какой был бы более питонический способ найти наибольшее число, кратное n, но ниже верхней границы x?
n
x
Практический пример:
n = 48 x = 2636
48 * 54 = 2592является ближайшим.
48 * 54 = 2592
Я бы сделал for цикл, пока не перейду x.Какие есть хорошие альтернативы?
for
Самый питоновский способ, который я мог бы себе представить, был бы для Python 2 или 3:
>>> (x // n) * n
Вы можете использовать операцию по модулю
x-(x%n)
Если верхняя граница должна быть строго ниже, чем x, используйте
x - 1 -((x-1) % n)
Это тоже работает:
print(x - (x%n))
Простейшим способом, вероятно, является использование //:
//
(x // n) * n
Если число должно быть строго меньше x, используйте x - 1 вместо:
x - 1
((x - 1) // n) * n
Выражение x // n представляет собой деление по полу x на n, отбрасывая любой остаток.
x // n