Показать сообщение отдельно
  #8 (permalink)  
Старый 19.06.2011, 14:35
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

а вот при чем

1,21 яблоко
2-4,22-24 яблока
0,5-20,25-30 яблок_

20 периодичность...

function a(a, f1, f2, f3){

/*
  наша задача - свести это число (числительное) 
  к минимальному значению (красные цифры).
  для этого можно использовать модуль деления.

  примеры того,что снизу :

  было 1-20, осталось 1-20.(как было)
  было 21-30, стало 1-10.
*/

            a = a % 20 // остаток от деления на 20

// пойдем по числам , а не по формам  

          if ( a===0 ) return f3;
// тут ясно
           else if( a===1 ) return f1;

// полтора яблок*!*А*/!*
           else if ( a>1 && a<5 ) return f2;

// двадцать с половиной яблок_
// a может быть максимум 19, кстати))
           else if ( a>=5 && a< 21 ) return f3;

// на всякий
           else alert( "ERROR" );

       
}

var s='цифра | форма\n';

// маленький тест
for(var i=0;i<23;i++) s+= i+" | "+a(i,'яблоко','яблока','яблок')+" \n";

alert( s );
Ответить с цитированием