Kyrexar

ToRoman

Jun 22nd, 2021 (edited)
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.32 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Roman
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             List<int> numbers = new List<int> { 4, 8, 15, 16, 23, 42, 1942, 2042, 2142 };
  11.  
  12.             foreach (int n in numbers) Console.WriteLine(n + "\t=\t" + ToRoman(n));
  13.  
  14.             string input = Console.ReadLine();
  15.  
  16.             while (int.TryParse(input, out int n) && n > 0)
  17.             {
  18.                 Console.WriteLine(n + "\t=\t" + ToRoman(n));
  19.                 input = Console.ReadLine();
  20.             }
  21.         }
  22.  
  23.         static string ToRoman(int number)
  24.         {
  25.             List<string> romanTier0 = new List<string> { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
  26.             List<string> romanTier1 = new List<string> { "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" };
  27.             List<string> romanTier2 = new List<string> { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
  28.  
  29.             int n0 = number % 10;
  30.             int n1 = (int)Math.Floor((double)(number / 10)) % 10;
  31.             int n2 = (int)Math.Floor((double)(number / 100)) % 10;
  32.             int n3 = (int)Math.Floor((double)(number / 1000));
  33.             return new String('M', n3) + romanTier2[n2] + romanTier1[n1] + romanTier0[n0];
  34.         }
  35.     }
  36. }
  37.  
Add Comment
Please, Sign In to add comment