Показать сообщение отдельно
  #2  
Старый 18.12.2009, 19:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

На самом деле, если тв проанализируешь все варианты, тог ты увидишь, что кол-во вариантов не так и велико.
1 утка
2-4 утки
5-20 уток
21 утка
22-24 утки
25-30 уток
31 утка
32-34 утки
35-40 уток
и т.д.

на самом деле у тебя получается:
Код:
If ((N mod 10) = 1) And (N <> 11) 
  Then Result := 'утка' 
  Else
    If ((N mod 10) In [2..4]) And (Not (N In [12,13,14])) 
      Then Result := 'утки' 
      Else Result := 'уток';

как-то так.
Ответить с цитированием