Skip to content

Instantly share code, notes, and snippets.

@unilecs
Last active April 10, 2023 01:27
Show Gist options
  • Save unilecs/0ed50d630f35acf291e458c26e9bd33e to your computer and use it in GitHub Desktop.
Save unilecs/0ed50d630f35acf291e458c26e9bd33e to your computer and use it in GitHub Desktop.
Задача: Конвертер арабских чисел в римские
using System;
public class Program
{
public static string ConvertIntToRoman(int n)
{
if (n >= 1000)
return "M" + ConvertIntToRoman(n - 1000);
if (n >= 500)
return n >= 900 ? ("CM" + ConvertIntToRoman(n - 900)) : ("D" + ConvertIntToRoman(n - 500));
if (n >= 100)
return n >= 400 ? ("CD" + ConvertIntToRoman(n - 400)) : ("C" + ConvertIntToRoman(n - 100));
if (n >= 50)
return n >= 90 ? ("XC" + ConvertIntToRoman(n - 90)) : ("L" + ConvertIntToRoman(n - 50));
if (n >= 10)
return n >= 40 ? ("XL" + ConvertIntToRoman(n - 40)): ("X" + ConvertIntToRoman(n - 10));
if (n >= 5)
return n == 9 ? "IX" : "V" + ConvertIntToRoman(n - 5);
if (n > 0)
return n == 4 ? "IV" : "I" + ConvertIntToRoman(n - 1);
return "";
}
public static void Main()
{
Console.WriteLine("UniLecs");
// Tests
Console.WriteLine("Answer = {0}", ConvertIntToRoman(3)); // III
Console.WriteLine("Answer = {0}", ConvertIntToRoman(4)); // IV
Console.WriteLine("Answer = {0}", ConvertIntToRoman(9)); // IX
Console.WriteLine("Answer = {0}", ConvertIntToRoman(58)); // LVIII
Console.WriteLine("Answer = {0}", ConvertIntToRoman(1994)); // MCMXCIV
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment