Img profile default
지서
  • 2016.4.28 22:41
  • 조회수 182
  • 답변수 1
Img profile default
지서
  • 2016.4.28 22:41
  • 조회수 182
  • 답변수 1

for 문으로 해결하긴 했는데...

number = 323
a = str(number) #스트링으로 변환
j = list(a) # 리스트 변환
k=0
for i in j:
....k=k + int(i) # 이 부분 알고리즘? 이 이해가 안가요

print (k)

좀만 더 쉽게 알 수 있을까요?

sum_digit
def sum_digit(number):
    a = str(number) #스트링으로 변환
    j = list(a) # 리스트 변환
    k=0
    for i in j:
        k=k + int(i)

    return k


    '''number의 각 자릿수를 더해서 return하세요'''
  • #파이썬 입문
  • #자릿수 더하기

1 답변

  • Dbucdlkpqyn7yg1hgsny
    이확영
    • 2016.4.29 10:34

    number가 123인 경우를 예를 들어보면
    a에는 "123" 스트링이 들어가고, j에는 ["1", "2", "3"] 리스트가 들어가게 됩니다.
    그런 다음 for loop내에서 j의 엘리먼트인 "1", "2", "3"을 하나씩 끄집어내서 k에 더하게 되는데 엘리먼트가 스트링이기 때문에 int(i)를 사용해서 정수로 변환해야 덧셈이 가능합니다.

    참고로 이 문제를 풀 때 % (modulo) 연산을 사용해도 풀 수 있습니다.
    예를 들어 123 % 10을 하면 3이 나오는데 이것을 하나씩 더해가도 각 자리수를 더한 값을 구할 수 있습니다.

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.