Feedback

C# - Quersummenberechnung

Veröffentlicht von am 14.09.2008
(1 Bewertungen)
Hier eine kleine Funktion, um Quersummen zu berechnen.
GFU-Schulungen  [Anzeige]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

        /// <summary>
        /// Berechnet die Quersumme einer Zahl
        /// </summary>
        /// <param name="Zahl">Die Zahl, aus der die Quersumme berechnet werden soll</param>
        /// <returns></returns>
        private int Quersumme(int iNumber)
        {
            //Zahl in einen String aufteilen
            string strNumbers = iNumber.ToString();
            iNumber = 0;
            List<int> lstParts = new List<int>();

            foreach (char ch in strNumbers)
            {
                lstParts.Add(Convert.ToInt32(ch.ToString()));
            }

            foreach (int i in lstParts)
            {
                iNumber = iNumber + i;
            }

            return iNumber;

        }
Abgelegt unter Quersumme, quersumme, Mathemathik, Mathe.

6 Kommentare zum Snippet

Nico schrieb am 14.09.2008:
Es geht auch etwas einfacher.
 private int GetQS(int _int)
{
int qs = 0;
foreach ( c in _int.ToString.ToCharArray) {
qs += Convert.ToInt32(c.ToString);
}
return qs;
}
Günther Foidl schrieb am 24.09.2008:
Mit ein wenig Mathematik gehts um den Faktor 100 schneller.

/// <summary>
/// Berechnet die Prüfsumme von <paramref name="zahl"/>
/// </summary>
/// <param name="zahl">
/// Zahl von der die Prüfsumme berechnet werden soll
/// </param>
/// <returns>
/// Prüfsumme von <paramref name="zahl"/>
/// </returns>
public static int PrüfSumme(int zahl)
{
int prüfSumme = 0;

do
{
prüfSumme += zahl % 10;
zahl /= 10;
} while (zahl > 0);

return prüfSumme;
}
Klemens Nanni schrieb am 25.03.2010:
Günther, deine Funktion verwendet den Divisor, der Fließkommazahlen erzeugt. So wird für die Zahl 123456789 die Quersumme 51 anstatt 45 ausgegeben. Bei deiner Methode muss der Ganzzahldivisor '\' verwendet werden.

prüfSumme += zahl % 10;
zahl \= 10;
hackman schrieb am 09.08.2010:
das ist etwas overkill würde ich sagen, so mit liste und string
wie wärs einfach
int Quersumme(int i) { return i % 10 + (i > 10 ? Quersumme(i / 10) : 0); }
Klemens Nanni schrieb am 10.08.2010:
hackman, dein Ansatz ist ledeglich eine rekursive Schreibweise von Günther Foidls iterativer Funktion - oder irre ich mich?
Firendeath schrieb am 10.08.2010:
@Nanni
Daumen Hoch das Komment is echt geil. xD
 

Logge dich ein, um hier zu kommentieren!