Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 주어진 숫자 N의 자릿수 개수 구하는 프로그램

숫자 N이 주어졌을 때, 해당 숫자에 포함된 자릿수가 총 몇 개인지 구하는 것이 이번 문제의 목표입니다. 먼저 예시를 통해 문제를 이해해 보겠습니다.

입력 예시 1

N = 891452

출력

6

설명 − 주어진 숫자 891452는 여섯 자리 숫자이므로 결과로 6을 반환합니다.

입력 예시 2

N = 0074515

출력

5

설명 − 맨 앞의 0은 숫자의 값에 영향을 주지 않으므로 실제 값은 74515이며, 다섯 자리 숫자이므로 출력은 5가 됩니다.

문제 해결 접근 방법

이 문제는 다음과 같은 단계로 해결할 수 있습니다.

  • 숫자 n을 입력받습니다.

  • countDigits(n) 함수가 입력값 n을 받아 자릿수 개수를 계산하여 반환합니다.

  • 숫자를 10으로 나누면서 각 자릿수를 하나씩 제거하고, 그때마다 카운터 변수를 1씩 증가시킵니다.

  • 숫자가 0이 되면 반복을 종료하고 카운터 값을 반환합니다.

구현 예제

def countDigits(n):
    ans = 0
    while n:
        ans += 1
        n //= 10
    return ans

n = 45758
print("주어진 숫자의 자릿수 :", countDigits(n))

실행 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

주어진 숫자의 자릿수 : 5

다른 방법들

반복문 외에도 파이썬의 내장 기능을 활용하면 더 간단하게 자릿수를 구할 수 있습니다.

1. 문자열 변환 활용

숫자를 문자열로 변환한 뒤 길이를 재는 방법으로, 가장 직관적이고 코드도 짧습니다.

n = 45758
print(len(str(n)))  # 출력: 5

2. math.log10 활용

로그 함수를 이용하면 반복 없이 한 번의 연산으로 자릿수를 구할 수 있어 큰 수에서 효율적입니다.

import math

n = 45758
print(math.floor(math.log10(n)) + 1)  # 출력: 5

다만 log10 방식은 n이 0일 경우 오류가 발생하므로, 입력값 범위에 따라 적절한 방법을 선택하는 것이 좋습니다.