Skip to content

Instantly share code, notes, and snippets.

@ariel-diaz
Last active February 1, 2020 01:18
Show Gist options
  • Save ariel-diaz/2d04531c41b3d92583ecf1f4982356a1 to your computer and use it in GitHub Desktop.
Save ariel-diaz/2d04531c41b3d92583ecf1f4982356a1 to your computer and use it in GitHub Desktop.
KATA TDD
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApp1
{
public class Test
{
public string getRomano(int num)
{
StringBuilder resultado = new StringBuilder();
getRomanoR(num, ref resultado);
return resultado.ToString();
}
public void getRomanoR(int num, ref StringBuilder resultado)
{
int cantidadCifras = num.ToString().Length;
int multiplicadorInt = (int)Math.Pow(10,(cantidadCifras - 1));
int digito = (num / multiplicadorInt);
int resto = digito * multiplicadorInt;
switch (cantidadCifras)
{
case 4:
resultado.Append(new String('M', digito));
getRomanoR(num - resto, ref resultado);
break;
case 3:
resultado.Append(getParteCentenas(digito));
getRomanoR(num - resto, ref resultado);
break;
case 2:
resultado.Append(getParteDecena(digito));
getRomanoR(num - resto, ref resultado);
break;
case 1:
resultado.Append(getParteDecimal(num));
break;
}
}
private string getParteDecena(int parteDecimal)
{
switch (parteDecimal)
{
case 1:
return "X";
case 2:
return "XX";
case 3:
return "XXX";
case 4:
return "XL";
case 5:
return "L";
case 6:
return "LX";
case 7:
return "LXX";
case 8:
return "LXXX";
case 9:
return "XC";
default: return "X";
}
}
private string getParteCentenas(int parteCentana)
{
switch (parteCentana)
{
case 1:
return "C";
case 2:
return "CC";
case 3:
return "CCC";
case 4:
return "CD";
case 5:
return "D";
case 6:
return "DC";
case 7:
return "DCC";
case 8:
return "DCCC";
case 9:
return "CM";
default: return "C";
}
}
private string getParteDecimal(int parteDecimal)
{
switch (parteDecimal)
{
case 1:
return "I";
case 2:
return "II";
case 3:
return "III";
case 4:
return "IV";
case 5:
return "V";
case 6:
return "VI";
case 7:
return "VII";
case 8:
return "VIII";
case 9:
return "IX";
default:
return "NO FUNCA";
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment