Как мне подойти к домашнему заданию, чтобы преобразовать арабские цифры в римские? - PullRequest
1 голос
/ 12 мая 2011

Мне нужно конвертировать арабский в римский.У меня есть номер метода (int place), который получает каждую цифру от определенного числа.

Пример: 5821, где числовой метод в месте 0 = 1;число (2) = 8 и т. д.

Теперь мне нужно написать метод (с помощником), который преобразует эти символы в римские цифры.Обычно это не сложно, но я не могу использовать массивы, и этот метод должен работать для трех случаев (1, 10 и 100);поэтому я не могу написать кейс для каждой цифры (в противном случае я мог бы много поменять или, если бы, чтобы покрыть кейсы).

Идеи кому-нибудь?

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Возможно, вместо того, чтобы думать о получении цифры , вам следует подумать о получении значения . Думайте о значении, которое вы отображаете, как о сумме значений, каждое из которых может быть просто выражено римскими цифрами.

convert(5000) + convert(800) + convert(20) + convert(1)
2 голосов
/ 12 мая 2011

Поскольку это домашняя работа, псевдокод ниже намеренно оставлен неполным.

string toRomanString (int aNumber)
{
  string result = "";
  if (aNumber < 1 || aNumber.toString().length() > 4)
   throw NotImplementedException();

  for(int i=0; i < aNumber.toString().length(); i++)
  {
    if(i = 0)
    {
      throw NotImplementedException();
    }
    elseif(i = 1)
    {
      throw NotImplementedException();
    }
    elseif(i = 2)
    {
      throw NotImplementedException();
    }
    else
    {
      throw NotImplementedException();
    }
  }
}
...