ホームページ  >  記事  >  バックエンド開発  >  数字の桁を合計する最も効率的な方法は何ですか?

数字の桁を合計する最も効率的な方法は何ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-24 01:00:11298ブラウズ

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

数値の桁の合計: 効率的なアプローチ

数値の桁の合計を求める最も効率的なアプローチは次のとおりです。純粋な整数演算を利用します。次の 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。