반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
C언어 자릿수 계산 본문
반응형
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으로 나누면서 자릿수를 카운트함
반응형
'알고리즘 > 알고리즘 문제 풀이' 카테고리의 다른 글
C언어 알파벳 개수 세기 (0) | 2016.04.01 |
---|---|
C언어 정삼각형 별찍기 (0) | 2016.03.31 |
C언어 함수 이용한 사칙연산 계산기 (0) | 2016.03.29 |
홀수는 더하고 짝수는 빼는 더러운 코드 (2) | 2016.03.18 |
C언어 time 함수로 밥 때까지 몇 시간 남았는지 구하기 (0) | 2016.03.16 |
Comments