정수의 자릿수 구하기, 한 자리씩 판별하기
2018. 2. 16. 10:23
자릿수 구하기
int GetNumberOfDigits(int n)
{ // n이 음수거나 양수거나 상관없다.
int number = 1;
for(int i = n; i != 0; i/=10)
++number;
return number;
}
또는
int GetNumberOfDigits(int n)
{ // n이 음수거나 양수거나 상관없다.
int number = 1;
for (int i = 10; n / i != 0; i *= 10)
++number;
return number;
}
밑에는 내가 작성해본 것인데 위에 것이 이해하기도 좋고 효율도 좋아보인다.
정수 한 자리씩 판별하기
위의 코드를 응용하면
void foo(int n )
{
for (int i = n; i!= 0; i/= 10)
if(i % 10 != 0)
// do something here ...
else
// 0일 때
}
%10이 1의 자리를 추출한다는 걸 이용해 한자리씩 줄여가면서 체크해볼 수 있다.
AtoI
int AtoI(char* sz)
{
int result = 0;
for(int i = 0; sz[i] != 0; ++i){
result = result * 10 + sz[i] - '0';
return result;
}
'프로그래밍 > C, C++ 공부' 카테고리의 다른 글
이중배열, N중배열 (0) | 2018.02.17 |
---|---|
배열의 이름 (0) | 2018.02.16 |
C/C++의 컴파일러는 왜 배열의 크기를 알아야 할까? (0) | 2018.02.16 |
for문을 사용할 때 (0) | 2018.02.15 |
The C++ Programming language의 조언들 (0) | 2016.05.31 |