Sprache: C#
Da es mit sicherheit noch eine kürzere version gibt, freue ich mich über jegliche kommentare 😉
Hier mal die Version über string und Array,..
public static int ZahlInvertieren(int zahl)
{
string zahlzerlegen = Convert.ToString(zahl);
int[] zahlArray = new int[zahlzerlegen.Length];
string zahlInvertiertString = null;
for (int i = 0; i < zahlzerlegen.Length; i++)
{
zahlArray[i] = (Convert.ToInt32(zahlzerlegen[i]) - 48);
}
Array.Reverse(zahlArray);
for (int i = 0; i < zahlzerlegen.Length; i++)
{
zahlInvertiertString += Convert.ToString(zahlArray[i]);
}
int zahlInvertiert = Convert.ToInt32(zahlInvertiertString);
return (zahlInvertiert);
}
public static int ZahlInvertieren(int zahl)
{
string zahlzerlegen = Convert.ToString(zahl);
int[] zahlArray = new int[zahlzerlegen.Length];
string zahlInvertiertString = null;
for (int i = 0; i < zahlzerlegen.Length; i++)
{
zahlArray[i] = (Convert.ToInt32(zahlzerlegen[i]) - 48);
}
Array.Reverse(zahlArray);
for (int i = 0; i < zahlzerlegen.Length; i++)
{
zahlInvertiertString += Convert.ToString(zahlArray[i]);
}
int zahlInvertiert = Convert.ToInt32(zahlInvertiertString);
return (zahlInvertiert);
}
Alte URL:
/snippet/ganze-zahl-invertieren-umdrehen/1647
Hm, am Ende wird sowas sicher immer über Strings und Arrays laufen, wie auch sonst.
Kürzere Schreibweise geht z. B. mit ein wenig „Linq-Magic“: ;)[code]public static int ZahlInvertieren2(int zahl)
{
return int.Parse(zahl.ToString().Reverse().Aggregate(new StringBuilder(), (sb, c) => sb.Append(c)).ToString());
}[/code]
public static int ZahlInvertieren2(int zahl)
{
return int.Parse(string.Join(string.Empty, zahl.ToString().Reverse()))
}
Es geht auch ganz ohne String und sogar für negative Zahlen.
[code]
public static int ZahlInvertieren2(int zahl)
{
int returnValue = 0;
while (zahl != 0)
{
returnValue *= 10;
returnValue += zahl % 10;
zahl /= 10;
}
return returnValue;
}
[/code]