Feedback

C# - Römische Zahlen

Veröffentlicht von am 08.10.2010
(2 Bewertungen)
Mit diesem Snippet lassen sich arabische Zahlen in römische Zahlen umwandeln.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

public static string IntToRomanNumber(int number)
{
	StringBuilder result = new StringBuilder();
	int[] digitsValues = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000 };
	string[] romanDigits = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M" };
	while (number > 0)
	{
		for (int i = digitsValues.Count() - 1; i >= 0; i--)
			if (number / digitsValues[i] >= 1)
			{
				number -= digitsValues[i];
				result.Append(romanDigits[i]);
				break;
			}
	}
	return result.ToString();
}
Abgelegt unter RömischeZahlen, Roman, umwandeln.

2 Kommentare zum Snippet

Mariops007 schrieb am 31.03.2018:
das funktioniert doch nicht oder? muss die 2. Schleife keine "while" Schleife sein?
Wenn du die Zahl 20 übergibst dann kommt als Ergebnis XIXI raus
Patrick Semmler schrieb am 01.04.2018:
Nicht nachvollziehbar. Hast Du es denn ausprobiert?
Ich habe mit folgendem Testcode:

Console.WriteLine(IntToRomanNumber(1));
Console.WriteLine(IntToRomanNumber(4));
Console.WriteLine(IntToRomanNumber(5));
Console.WriteLine(IntToRomanNumber(6));
Console.WriteLine(IntToRomanNumber(9));
Console.WriteLine(IntToRomanNumber(10));
Console.WriteLine(IntToRomanNumber(14));
Console.WriteLine(IntToRomanNumber(19));
Console.WriteLine(IntToRomanNumber(20));
Console.WriteLine(IntToRomanNumber(50));
Console.WriteLine(IntToRomanNumber(69));
Console.WriteLine(IntToRomanNumber(1976));
Console.WriteLine(IntToRomanNumber(2018));


folgenden Output:
I
IV
V
VI
IX
X
XIV
XIX
XX
L
LXIX
MCMLXXVI
MMXVIII
 

Logge dich ein, um hier zu kommentieren!