숫자의 자릿수 합계: 효율적인 접근 방식
숫자의 자릿수 합계를 구하는 가장 효율적인 접근 방식은 다음과 같습니다. 순수한 정수 연산을 활용합니다. 다음 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!