数値の桁の合計: 効率的なアプローチ
数値の桁の合計を求める最も効率的なアプローチは次のとおりです。純粋な整数演算を利用します。次の Python コードは、この手法を示しています。
def sum_digits(n): s = 0 while n: s += n % 10 n //= 10 return s
ここでは、モジュロ 10 を繰り返し適用して右端の桁を抽出し、それを合計に加算します。整数を 10 で割ることにより、次の桁に移動します。
さらに高速なバージョンでは、単一の代入ステートメントを使用します。
def sum_digits3(n): r = 0 while n: r, n = r + n % 10, n // 10 return r
速度を比較すると、整数演算を使用した方が、整数演算を使用した方が大幅に高速であることがわかります。数値を文字列に変換し、文字列操作を使用します。
%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
したがって、整数演算を利用することは、数値の桁を合計するための最も効率的な方法。
以上が数字の桁を合計する最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。