Maison >développement back-end >Tutoriel Python >Quelle est la manière la plus efficace de additionner les chiffres d'un nombre ?
Somme les chiffres d'un nombre : une approche efficace
Pour trouver la somme des chiffres d'un nombre, l'approche la plus efficace est utiliser des opérations purement entières. Le code Python suivant présente cette technique :
def sum_digits(n): s = 0 while n: s += n % 10 n //= 10 return s
Ici, nous appliquons à plusieurs reprises le modulo 10 pour extraire le chiffre le plus à droite et l'ajouter à la somme. En divisant un entier par 10, nous passons au chiffre suivant.
Une version encore plus rapide utilise une seule instruction d'affectation :
def sum_digits3(n): r = 0 while n: r, n = r + n % 10, n // 10 return r
Les comparaisons de vitesse indiquent que l'utilisation d'opérations entières est nettement plus rapide que convertir le nombre en chaîne et utiliser la manipulation de chaîne.
%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
Par conséquent, utiliser des opérations sur des nombres entiers est l'approche la plus efficace pour additionner le chiffres d'un nombre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!