а вот при чем 
 1
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 );