Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1563 | Anzahl registrierter User: 1895 | Besucher online: 46
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Quersummenberechnung


Autor: Black Hawk
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 12570
  
Kick it on dotnet-kicks.de  

Beschreibung:

Hier eine kleine Funktion, um Quersummen zu berechnen.

Abgelegt unter: Quersumme, quersumme, Mathemathik, Mathe.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        /// <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;

        }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Nico schrieb am:  14.09.2008 11:39:24

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 20:46:42

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 14:30:48

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 23:10:30

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 01:45:06

hackman, dein Ansatz ist ledeglich eine rekursive Schreibweise von Günther Foidls iterativer Funktion - oder irre ich mich?
Firendeath schrieb am:  10.08.2010 09:31:19

@Nanni
Daumen Hoch das Komment is echt geil. xD


Diese Snippets könnten für Sie interessant sein:
[C#] Summe 1..n berechnen
[C#] Fibonacci-Folge berechnen
[C#] n-te Fibonaccizahl rekursiv berechnen
[C#] Summe 1²...n² berechnen.
[C#] Summe 1³..n³ berechnen.
[C#] größten gemeinsamen Teiler berechnen.
[VB.NET] Multiplikation von übergroßen Zahlen
[C#] Dreiecksberechnung
[VB.NET] PI nach der Bailey-Borwein-Plouffe-Formel berechnen
[VB.NET] Quadratische Gleichung mit der PQ Formel lösen
[VB.NET] Basisrechenfunktionen für einen Kreis
[C++] Exponents
[C#] Geodaten in sexagesimal Format umrechnen
[VB.NET] Größten gemeinsamen Teiler berechnen
[VB.NET] Quadratwurzel ohne Sqrt() Funktion ziehen
[C#] Addiere alle ganzen Zahlen von x bis y
[C++] Caesar
[C#] "echte" Teiler Summe berechnen
[C#] Formelevaluierung aus RPN Form
[C#] Prüfung auf narzisstische Zahlen
[C#] CellMatrix
[C#] Maschinengenauigkeit
[C#] Flächenberechnungen am Kreis,Quadrat,Parallelogramm,Trapez
[C#] Bruch-Klasse
[VB.NET] einfacher rekursiver Mathe Parser
[VB.NET] Permutation nachweisen
[VB.NET] Das Sieb des Eratosthenes
[VB.NET] Primfaktorzerlegung
[VB.NET] Größter gemeinsamer Teiler
[VB.NET] Modulare Exponentation
[VB.NET] Fibonacci-Folge iterativ erzeugen
[VB.NET] Das Sieb von Atkin
[VB.NET] Das Sieb von Atkin (2)
[VB.NET] Werte zweier Variablen tauschen
[VB.NET] Ganzzahlige Wurzel
[VB.NET] Binäre Exponentation
[VB.NET] Größter gemeinsamer Teiler (2)
[VB.NET] Binomialkoeffizient
[VB.NET] Kleinster natürlicher Teiler > 1
[VB.NET] Das Sieb von Atkin (2) - aktuell
[VB.NET] Dezimalzahl in Zahl der Basis b < 37 konvertieren

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.