안 쓰던 블로그

C언어 자릿수 계산 본문

알고리즘/알고리즘 문제 풀이

C언어 자릿수 계산

proqk 2016. 3. 31. 23:13
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
int main(){
    long long a = 0LL;
    long long b = 10LL;
    int c = 1;
    scanf("%lld", &a);
 
    while (1){
        if (a / b == 0){
            break;
        }
        c++;
        b = b * 10;
    }
    printf("%d", c);
 
}
cs


int형을 쓰면 9자리까지밖에 구해지지 않는다.

이건 int형의 최대값(약 21억)을 넘어서는 수가 들어가버려서 생기는 오류인데, long long을 사용해서 간단하게 해결할 수 있다.

참고로 long형도 최대값을 넘는다.


3~4줄에서 long long int형 a, b를 선언하고 초기화 값 뒤에 LL을 붙여 long long형 정수라고 명시해주었다.


6줄에서 long long형이기 때문에 %d가 아닌 %lld로 받아줘야 한다. 

출력할 때도 마찬가지다.


8~13줄: 10으로 나누면서 자릿수를 카운트함


반응형
Comments