Сообщение от x-yuri
|
Это какие-то оптимизации, Riim?
|
я просто составил таблицу окончаний и записал условие по ней, так как мне было читабельней.
По таблице получается, что в Русском языке есть исключение в диапазоне 11-14 включительно. Если не считать этого исключения, то запись такая:
mod10 == 1 ? 0 : mod10 >= 2 && mod10 <= 4 ? 1 : 2;
в ней два условия, в том варианте, что по ссылке, исключение учитывается в обоих условиях, я же просто вынес его в отдельное условие и захватил в нем ближайшие цифры (какие можно было).
Вот так, наверное, проще сравнивать будет:
// без исключения
mod10 == 1 ? 0 : mod10 >= 2 && mod10 <= 4 ? 1 : 2;
// мой вариант
mod100 >= 5 && mod100 <= 20 ? 2 : mod10 == 1 ? 0 : mod10 >= 2 && mod10 <= 4 ? 1 : 2;
// вариант по ссылке
mod10 == 1 && mod100 != 11 ? 0 : mod10 >= 2 && mod10 <= 4 && (mod100 < 10 || mod100 >= 20) ? 1 : 2;