Advertisement
Guest User

Untitled

a guest
Dec 16th, 2021
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.41 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3.  
  4. namespace NumberConvertor
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Console.OutputEncoding = Encoding.UTF8;
  11.             var number = int.Parse(Console.ReadLine());
  12.             Console.WriteLine(NumberToWordsEN(number));
  13.             Console.WriteLine(NumberToWordsBG(number));
  14.         }
  15.         public static string NumberToWordsEN(int number)
  16.         {
  17.             if (number == 0)
  18.                 return "zero";
  19.  
  20.             if (number < 0)
  21.                 return "minus " + NumberToWordsEN(Math.Abs(number));
  22.  
  23.             string words = "";
  24.  
  25.             if ((number / 1000000) > 0)
  26.             {
  27.                 words += NumberToWordsEN(number / 1000000) + " million ";
  28.                 number %= 1000000;
  29.             }
  30.  
  31.             if ((number / 1000) > 0)
  32.             {
  33.                 words += NumberToWordsEN(number / 1000) + " thousand ";
  34.                 number %= 1000;
  35.             }
  36.  
  37.             if ((number / 100) > 0)
  38.             {
  39.                 words += NumberToWordsEN(number / 100) + " hundred ";
  40.                 number %= 100;
  41.             }
  42.  
  43.             if (number > 0)
  44.             {
  45.                 if (words != "")
  46.                     words += "and ";
  47.  
  48.                 var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
  49.                 var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };
  50.  
  51.                 if (number < 20)
  52.                     words += unitsMap[number];
  53.                 else
  54.                 {
  55.                     words += tensMap[number / 10];
  56.                     if ((number % 10) > 0)
  57.                         words += "-" + unitsMap[number % 10];
  58.                 }
  59.             }
  60.  
  61.             return words;
  62.         }
  63.         public static string NumberToWordsBG(int number)
  64.         {
  65.             if (number == 0)
  66.                 return "нула";
  67.  
  68.             if (number < 0)
  69.                 return "минус " + NumberToWordsBG(Math.Abs(number));
  70.  
  71.             string words = "";
  72.  
  73.             if ((number / 1000000) > 0)
  74.             {
  75.                 words += NumberToWordsBG(number / 1000000) + " милиона ";
  76.                 number %= 1000000;
  77.             }
  78.  
  79.             if ((number / 1000) > 0)
  80.             {
  81.                 if (number / 1000 == 1)
  82.                 {
  83.                     words += "хиляда ";
  84.                 }
  85.                 else
  86.                     words += NumberToWordsBG(number / 1000) + " хиляди ";;
  87.                 number %= 1000;
  88.             }
  89.  
  90.             if (number > 0)
  91.             {
  92.                 var unitsMap = new[] { "нула", "едно", "две", "три", "четири", "пет", "шест", "седем", "осем", "девет", "десет", "единадесет", "дванадесет", "тринадесет", "четиринадесет", "петнадесет", "шестнадесет", "седемнадесет", "осемнадесет", "деветнадесет" };
  93.                 var tensMap = new[] { "нула", "десет", "двадесет", "тридесет", "четиридесет", "петдесет", "шестдесет", "седемдесет", "осемдесет", "деветдесет" };
  94.                 var hundredsMap = new[] { "нула", "сто", "двеста", "триста", "четиристотин", "петстотин", "шестстотин", "седемстотин", "осемстотин", "деветстотин" };
  95.                 if (number >= 100)
  96.                 {
  97.                     words += hundredsMap[number / 100];
  98.                     number = number % 100;
  99.                     if (number % 100 != 0)
  100.                     {
  101.                         words += " и ";
  102.                     }
  103.                 }
  104.              
  105.                 if (number < 20 && number != 0) {
  106.                     words += unitsMap[number];
  107.                 }
  108.                 else if (number != 0)
  109.                 {
  110.                     words += tensMap[number / 10];
  111.                     if ((number % 10) > 0)
  112.                         words += " и " + unitsMap[number % 10];
  113.                 }
  114.             }
  115.  
  116.             return words;
  117.         }
  118.     }
  119. }
  120.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement