숫자 합계 코드가 작동하지 않는 이유를 이해하지 못함

alex1234567890987

나는 codewars Sum of Digits / Digital Root 문제를 시도했습니다.

n이 주어지면 n의 자릿수 합계를 취하십시오. 해당 값에 두 자리 이상의 숫자가 있으면 한 자리 숫자가 생성 될 때까지이 방법으로 계속 줄이십시오. 입력은 음이 아닌 정수입니다.

따라서 52를 통과하면 7이 반환됩니다. 5 + 2가 7이고 942를 통과하면 6이 반환됩니다. 9 + 4 + 2 = 15, 1 + 5 = 6입니다.

이 코드를 생각해 냈습니다.

def digital_root(n):
    n_str = str(n)
    digit_total = 0
    while len(n_str) != 1:
        for digit in n_str:
            digit_total += int(digit)
        n_str = str(digit_total)
    return(n_str)

그러나 2 자리 숫자에서만 작동하고 더 높은 숫자에서는 작동하지 않으며 끝없이 실행됩니다. 이 코드는 아마도 나쁜 방법 일 것입니다. 그리고 다른 사람들의 답변을 살펴 보았고 그들의 해결책을 얻었지만 이것이 왜 더 높은 숫자에서 작동하지 않는지 이해하지 못했습니다.

조 Ferndz

프로그램이 거의 옳았습니다. 내가 보는 유일한 도전은 digit_total = 0각 반복 후에 변수를 재설정하는 것 입니다.

def digital_root(n):
    n_str = str(n)
    while len(n_str) != 1:
        digit_total = 0 #move this inside the while loop
        for digit in n_str:
            digit_total += int(digit)
        n_str = str(digit_total)
    return(n_str)

print (digital_root(23485))

에 대한 출력 print (digital_root(23485))은 다음과 같습니다.4

2 + 3 + 4 + 8 + 5 = 22
2 + 2 = 4

digit_total = 0while 루프 안에 없으면 계속 추가되고 끝나지 않는 루프를 얻습니다.

코드가 많지만 한 줄로이 작업을 수행 할 수 있습니다.

def sum_digits(n):
    while len(str(n)) > 1: n = sum(int(i) for i in str(n))
    return n

print (sum_digits(23485))

너무 많은 변수를 생성하고 추적하는 데 잃어 버릴 필요가 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

숫자가 소수인지 아닌지 테스트하는 코드를 이해하지 못함

분류에서Dev

replace () 메서드가 예상대로 작동하지 않는 이유를 이해하지 못합니다.

분류에서Dev

as3 hittestobject가 작동하지 않음, 이유를 이해하지 못함

분류에서Dev

생성자 함수를 변수에 할당합니다. -Firefox 콘솔을 사용하여이 코드가 작동하지 않는 이유

분류에서Dev

함수 코드가 작동하지 않는 이유

분류에서Dev

3 개의 값을 취하고 3 개의 숫자의 최대 값과 평균을 계산하는 파이썬 함수를 만들어야합니다. 내 코드가 실행되지 않고 이유를 모르겠습니다.

분류에서Dev

이 코드가 큰 숫자에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 코드에서 ""을 (를) 사용하는 이유를 이해하지 못하지만 ''와 동일한 코드는 작동하지 않습니다.

분류에서Dev

Dart forEach가 작동하는 방식을 이해하지 못함

분류에서Dev

이 Lamda 함수가 어떻게 작동하는지 이해하지 못함

분류에서Dev

이 AngularJS가 $ inject 서비스없이 작동하는 이유를 이해하지 못함

분류에서Dev

JQuery, PHP 및 mySQL 도움말. 이것이 작동하지 않는 이유를 이해하지 못합니다.

분류에서Dev

이 코드가 작동하지 않는 이유를 모르겠습니다! 누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?

분류에서Dev

숫자로만 입력하는이 함수가 실제로 입력 유형 : 숫자에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

이 코드가 작동하지 않는 이유가 궁금합니다.

분류에서Dev

루프가 멈추지 않는 이유를 이해하지 못함

분류에서Dev

const 한정자가 폐기되는 이유를 이해하지 못합니다.

분류에서Dev

내 컴퓨터 키보드의 숫자 키가 가끔 작동하지 않지만 numblock이 작동합니다.

분류에서Dev

이 자바 코드가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

Google지도 API의 Python 코드가 갑자기 작동하지 않는 이유

분류에서Dev

내 코드에서 IndexError가 발생하는 이유를 이해하지 못합니다.

분류에서Dev

지오 코드가 계속 잘못된 주소를 반환하지만 Google지도가 올바르게 작동하는 이유

분류에서Dev

내 코드가 작동하고 이유를 알지 못함 (객체 작업)

분류에서Dev

Haskell에서 foldr를 사용하는이 함수가 작동하지 않는 이유를 이해하려고합니다.

분류에서Dev

Thread.sleep 및 'new'연산자가 어떻게 작동하는지 이해하지 못합니다.

분류에서Dev

이 함수가 나눌 수있는 숫자를 찾지 못하고 '정의되지 않음'을 인쇄하는 이유는 무엇입니까?

분류에서Dev

내 함수가 내 숫자를 모두 합하지 않는 이유는 무엇입니까? 그것은 첫 번째 숫자 만 제공합니다

분류에서Dev

파이썬의 합계 함수가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 함수가 큰 숫자에 대해 작동하지 않는 이유는 무엇이며 어떻게 변경할 수 있습니까?

Related 관련 기사

  1. 1

    숫자가 소수인지 아닌지 테스트하는 코드를 이해하지 못함

  2. 2

    replace () 메서드가 예상대로 작동하지 않는 이유를 이해하지 못합니다.

  3. 3

    as3 hittestobject가 작동하지 않음, 이유를 이해하지 못함

  4. 4

    생성자 함수를 변수에 할당합니다. -Firefox 콘솔을 사용하여이 코드가 작동하지 않는 이유

  5. 5

    함수 코드가 작동하지 않는 이유

  6. 6

    3 개의 값을 취하고 3 개의 숫자의 최대 값과 평균을 계산하는 파이썬 함수를 만들어야합니다. 내 코드가 실행되지 않고 이유를 모르겠습니다.

  7. 7

    이 코드가 큰 숫자에서 작동하지 않는 이유는 무엇입니까?

  8. 8

    내 코드에서 ""을 (를) 사용하는 이유를 이해하지 못하지만 ''와 동일한 코드는 작동하지 않습니다.

  9. 9

    Dart forEach가 작동하는 방식을 이해하지 못함

  10. 10

    이 Lamda 함수가 어떻게 작동하는지 이해하지 못함

  11. 11

    이 AngularJS가 $ inject 서비스없이 작동하는 이유를 이해하지 못함

  12. 12

    JQuery, PHP 및 mySQL 도움말. 이것이 작동하지 않는 이유를 이해하지 못합니다.

  13. 13

    이 코드가 작동하지 않는 이유를 모르겠습니다! 누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?

  14. 14

    숫자로만 입력하는이 함수가 실제로 입력 유형 : 숫자에서 작동하지 않는 이유는 무엇입니까?

  15. 15

    이 코드가 작동하지 않는 이유가 궁금합니다.

  16. 16

    루프가 멈추지 않는 이유를 이해하지 못함

  17. 17

    const 한정자가 폐기되는 이유를 이해하지 못합니다.

  18. 18

    내 컴퓨터 키보드의 숫자 키가 가끔 작동하지 않지만 numblock이 작동합니다.

  19. 19

    이 자바 코드가 작동하지 않는 이유는 무엇입니까?

  20. 20

    Google지도 API의 Python 코드가 갑자기 작동하지 않는 이유

  21. 21

    내 코드에서 IndexError가 발생하는 이유를 이해하지 못합니다.

  22. 22

    지오 코드가 계속 잘못된 주소를 반환하지만 Google지도가 올바르게 작동하는 이유

  23. 23

    내 코드가 작동하고 이유를 알지 못함 (객체 작업)

  24. 24

    Haskell에서 foldr를 사용하는이 함수가 작동하지 않는 이유를 이해하려고합니다.

  25. 25

    Thread.sleep 및 'new'연산자가 어떻게 작동하는지 이해하지 못합니다.

  26. 26

    이 함수가 나눌 수있는 숫자를 찾지 못하고 '정의되지 않음'을 인쇄하는 이유는 무엇입니까?

  27. 27

    내 함수가 내 숫자를 모두 합하지 않는 이유는 무엇입니까? 그것은 첫 번째 숫자 만 제공합니다

  28. 28

    파이썬의 합계 함수가 작동하지 않는 이유는 무엇입니까?

  29. 29

    내 함수가 큰 숫자에 대해 작동하지 않는 이유는 무엇이며 어떻게 변경할 수 있습니까?

뜨겁다태그

보관