Konwersja liczb arabskich na rzymskie
brodny
#include <string>
#include <iostream>
// ...
std::string DecToRoman(long int Decimal)
{
const long int Numbers[13] = { 1, 4, 5, 9, 10, 40, 50, 90, 100,
400, 500, 900, 1000 };
const std::string Romans[13] = { "I", "IV", "V", "IX", "X", "XL",
"L", "XC", "C", "CD", "D", "CM", "M" };
std::string Result = "";
for (int i = 12; i >= 0; --i)
{
while (Decimal >= Numbers[i])
{
Decimal -= Numbers[i];
Result += Romans[i];
}
}
return Result;
}
Przykład użycia:
// ...
long int nLiczba;
std::cin >> nLiczba;
std::cout << std::endl << DecToRoman(nLiczba);
// ...
Przetłumaczone na C++ na podstawie kodu bełdzia (http://4programmers.net/faq.php?id=792).
Nie mam czasu szukać.. jak znajdziesz, to popraw z łaski swojej.
Jeszcze link jest dziurawy, wypadałoby poprawić... :>
Jak rzekłem, tak się stało - powróciłem z < na <
Thx Marooned - nie piszę tak często artykułów, żeby o tym pamiętać :)
To błąd obecnej wersji Coyote - ucina zawartość <> :/
Poprawiłem na <
To wszystko zostanie poprawione jak wejdzie GeSHi - jednak teraz nie mam czasu na Coyote :/
#include ... ? :>
Moze #include <iostream> ?:>