euler 17

by Hensixteen

JavaScript

var counter = 1;
var testString;
var numString;
var length;
var total = 0;
var char1;
var char2;
var char3;
var word1;
var word2;
var word3;
var nums = ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var over9 = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"];
var over19 = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"];

for(counter = 1; counter<=1000; counter++) {

	testString = counter.toString();
  length = testString.length;
  
  word1 = "";
  word2 = "";
  word3 = "";
  
  if(length==4) {
  	word1 = "onethousand";
  }
  
  else if(length==3) {
  	char1 = Number(testString.charAt(0));
    char2 = Number(testString.charAt(1));
    char3 = Number(testString.charAt(2));
  	word1 = (nums[char1]+"hundred");
    if(counter%100==0) {    
    }
    else if(counter-(100*Number(testString.charAt(0))) <= 19) {
    	if(counter-(100*Number(testString.charAt(0))) <= 9) {
      	word2=("and"+nums[char3]);
      }
      else {
      	word2=("and"+over9[char3])
      }
    }
    else {
    	word2=("and"+over19[(char2-2)]);
      word3=nums[char3];
    }
  }
  
  else if(length==2) {
  	char1 = Number(testString.charAt(0));
    char2 = Number(testString.charAt(1));
    if(counter<=19) {
    	word1=over9[char2];
    }
    else {
    	word1=over19[(char1-2)];
      word2=nums[char2];
    }
  }
  
  else {
  	char1 = Number(testString.charAt(0));
  	word1 = nums[char1];
  }
  
  numString = (word1+word2+word3);
  total+=numString.length;
  console.log(numString+" - "+total);

}