2

As a result of finding this interesting question, I decided to write an example in JavaScript which implemented the logic and contribute it back to the question. The problem is that I'm having some issues implementing the logic. I can speak Ruby which is what I'm basing my implementation on, but I'm having an issue with an endless while loop which I'm having trouble sorting out.

I have the whole implementation up on js.do.it here: http://jsdo.it/rfkrocktk/k9Jq

function encode(i) {
   if (i == 0) return DICTIONARY[0];

   var result = '';
   var base = DICTIONARY.length;

   while (i > 0) {
       result += DICTIONARY[i % base];
       i = i / base;
   }

   result = result.reverse();
   return result;
}

What am I doing wrong here?

Community
  • 1
  • 1
Naftuli Kay
  • 87,710
  • 93
  • 269
  • 411

1 Answers1

1

Javascript uses floating point math by default. Use i = Math.floor(i / base);

Kevin Stricker
  • 17,178
  • 5
  • 45
  • 71