Ppb2011 1
var http = require('http');
var url = require('url');
 
var server = http.createServer(
  function(req, res) {
    //Извлекаем строку запроса
    pathname = decodeURIComponent(url.parse(req.url).pathname).split('/')[1];
    console.log(pathname);
 
    //Если запрос состоит из строки 'kill', завершаем работу сервиса
    if (pathname === 'kill') {
      res.writeHead(200, {"Content-Type": "text/html; charset=UTF-8"});
      res.end("<h1>Server кирдык<h1>");
      server.close('');
      req.connection.destroy('');
      console.log("кирдык");
      process.exit('');
      return;
    } 
    res.writeHead(200, {"Content-Type": "text/html; charset=UTF-8"});
 
    number = parseInt(pathname);
    //проверка на правильное число
    if(number <=0 || number > 150){
      res.end("<h1>Неверное число</h1>");
      return;
    }
 
    words = {
        m1:['десять','двадцать','тридцать','сорок','пятьдесят','шестьдесят','семьдесят','восемдесят','девяносто'],
        m2:['десять', 'одиннадцать','двенадцать','тринадцать','четырнадцать','пятнадцать','шестнадцать','семнадцать','восемнадцать','девятнадцать'],
        m3:['ноль', 'один','два','три','четыре','пять','шесть','семь','восемь','девять','десять']        
    };
 
    var result = "";
    var moreOrHundred = number >= 100;
    var lastDigit = number%10;
    if(moreOrHundred)//число больше или равно ста
    {
        result = "сто ";
        number-=100;
    }
    if(number < 20)
    {
        if(number >= 10)//число от 10 до 19, правило написания лет\год отличается
            result += words.m2[lastDigit] + " лет";
        else//число меньше 10
            result += words.m3[lastDigit];
    }
    else//число больше либо равно 20
    {
        var firstDigit = (number - lastDigit)/10;
        result += words.m1[firstDigit - 1];//десятки
        if(lastDigit > 0)
            result += " " + words.m3[lastDigit];//единицы, если 0, то ничего не добавляется
    }
    if(number < 10 || number >= 20)//для всех чисел вне диапазона 10-20 не добавили подпись лет\год
    {
        switch(lastDigit){
            case 1: result += " год";
                break;
            case 2:
            case 3:
            case 4: result += " года";
                break;
            default: if(!moreOrHundred)
                        result += " ";
                    result += "лет";
                    break;
        }
    }
   //вывод результата
 
    res.end("<h1>" + result + "</h1>");
});
 
server.listen(8000)
console.log('Сервер стартовал на порту 8000')