對數字進行求和的最有效方法是什麼?

Barbara Streisand
發布: 2024-11-24 01:00:11
原創
329 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板