Skip to content

Instantly share code, notes, and snippets.

@sguzunov
Created May 29, 2016 13:41
Show Gist options
  • Save sguzunov/17942e072cec880d6f44909fe3dae5df to your computer and use it in GitHub Desktop.
Save sguzunov/17942e072cec880d6f44909fe3dae5df to your computer and use it in GitHub Desktop.
using System;
using System.Collections.Generic;
using System.Text;
class Program
{
private static ulong ConvertFromBaseToDecimalNumber(string message, uint numeralSystem)
{
ulong power = 1;
ulong decimalNumber = 0;
for (int i = message.Length - 1; i >= 0; i--)
{
char symbol = message[i];
if (symbol >= '0' && symbol <= '9')
{
decimalNumber += (ulong)(symbol - '0') * power;
}
else
{
decimalNumber += (ulong)(symbol + 10 - 'A') * power;
}
power *= numeralSystem;
}
return decimalNumber;
}
static void Main()
{
string input = Console.ReadLine();
List<string> digits = new List<string>() { "CHU", "TEL", "OFT", "IVA", "EMY", "VNB", "POQ", "ERI", "CAD", "K-A", "IIA", "YLO", "PLA" };
StringBuilder message = new StringBuilder();
for (int i = 0; i < input.Length - 2; i += 3)
{
string subStr = input.Substring(i, 3);
int digit = digits.IndexOf(subStr);
if (digit >= 10)
{
message.Append(((char)(digit - 10 + 'A')).ToString());
}
else
{
message.Append(digit.ToString());
}
}
ulong decimalNumber = ConvertFromBaseToDecimalNumber(message.ToString(), 13);
Console.WriteLine(decimalNumber);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment