리스트 형태로 표현된 10진수 값이 입력으로 주어졌을 때, 마지막 자릿수(요소)를 1만큼 증가시켜야 하는 경우가 있습니다. 이때 'increment_num'이라는 메서드를 정의하여 리스트의 마지막 요소가 9보다 작은지 확인하고, 확인 결과에 따라 리스트의 각 요소에 적절한 연산을 수행합니다.
이 방식은 큰 숫자를 자릿수별로 리스트에 저장했을 때, 일반적인 정수형 범위를 넘는 매우 큰 수에도 1을 더하는 연산을 안전하게 처리할 수 있다는 장점이 있습니다.
예제
아래는 이를 구현한 데모입니다.
def increment_num(my_list, n):
i = n
if(my_list[i] < 9):
my_list[i] = my_list[i] + 1
return
my_list[i] = 0
i -= 1
increment_num(my_list, i)
n = 4
my_list = [0, 1, 4, 7, 9]
print("The list is :")
print(my_list)
increment_num(my_list, n)
if(my_list[0] > 0):
print(my_list[0], ", ")
print("After incrementing, the list is :")
print(my_list)
출력
The list is :
[0, 1, 4, 7, 9]
After incrementing, the list is :
[0, 1, 4, 8, 0]
설명
'increment_num'이라는 이름의 메서드가 정의되며, 리스트와 숫자를 매개변수로 받습니다.
리스트의 마지막 요소가 9보다 작은지 검사합니다.
9보다 작다면 해당 요소를 1 증가시킨 후 함수를 종료합니다.
만약 마지막 요소가 9라면 올림(carry)이 발생하므로, 해당 자릿수를 0으로 바꾸고 인덱스를 1 감소시킨 뒤 'increment_num' 메서드를 재귀적으로 다시 호출합니다.
함수 외부에서는 'n'의 값과 리스트가 정의됩니다.
정의된 리스트가 콘솔에 출력됩니다.
필요한 매개변수를 전달하여 메서드를 호출합니다.
증가 연산이 완료된 최종 결과가 콘솔에 출력됩니다.
위 예제에서 마지막 요소가 9였기 때문에 올림이 발생하여 해당 자릿수는 0이 되고, 바로 앞 자릿수인 7이 8로 증가한 것을 확인할 수 있습니다.