Heim > Backend-Entwicklung > Python-Tutorial > Was ist der effizienteste Weg, die Ziffern einer Zahl zu summieren?

Was ist der effizienteste Weg, die Ziffern einer Zahl zu summieren?

Barbara Streisand
Freigeben: 2024-11-24 01:00:11
Original
385 Leute haben es durchsucht

What's the Most Efficient Way to Sum a Number's Digits?

Summiere die Ziffern einer Zahl: Ein effizienter Ansatz

Um die Summe der Ziffern in einer Zahl zu ermitteln, ist der effizienteste Ansatz um rein ganzzahlige Operationen zu verwenden. Der folgende Python-Code veranschaulicht diese Technik:

def sum_digits(n):
    s = 0
    while n:
        s += n % 10
        n //= 10
    return s
Nach dem Login kopieren

Hier wenden wir wiederholt Modulo 10 an, um die Ziffer ganz rechts zu extrahieren und zur Summe zu addieren. Durch eine ganzzahlige Division durch 10 wechseln wir zur nächsten Ziffer.

Eine noch schnellere Version verwendet eine einzelne Zuweisungsanweisung:

def sum_digits3(n):
    r = 0
    while n:
        r, n = r + n % 10, n // 10
    return r
Nach dem Login kopieren

Geschwindigkeitsvergleiche zeigen, dass die Verwendung von Ganzzahloperationen deutlich schneller ist als Konvertieren der Zahl in eine Zeichenfolge und Verwenden der Zeichenfolgenmanipulation.

%timeit sum_digits(n)  # Pure integer operations
1000000 loops, best of 3: 479 ns per loop

%timeit sum_digits2(n)  # Integer operations with divmod
1000000 loops, best of 3: 716 ns per loop

%timeit sum(map(int, str(n)))  # String manipulation
1000000 loops, best of 3: 1.42 us per loop

%timeit sum([int(digit) for digit in str(n)])  # List comprehension
100000 loops, best of 3: 1.52 us per loop

%timeit sum(int(digit) for digit in str(n))  # Generator expression
100000 loops, best of 3: 2.04 us per loop
Nach dem Login kopieren

Daher ist die Verwendung ganzzahliger Operationen der effizienteste Ansatz zum Summieren der Ziffern von a Nummer.

Das obige ist der detaillierte Inhalt vonWas ist der effizienteste Weg, die Ziffern einer Zahl zu summieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage