[C언어] 정수를 뒤집는(반전) 방법

ET의 공부/C언어|2020. 12. 13. 01:14

C언어에서 정수를 반전(뒤집는)방법 입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main() {
    int n, rev = 0, remainder;
    printf("정수 입력: ");
    scanf("%d"&n);
    while (n != 0) {
        remainder = n % 10;
        rev = rev * 10 + remainder;
        n /= 10;
    }
    printf("반전된 정수 = %d\n", rev);
    return 0;
}

 

 

1. 반복문은 입력된 값이 0이 아닐때까지만 수행합니다.

2. 나머지 연산자로 10을 계산하여 1의자리(나머지)를 구해줍니다.

3. rev에 10을 곱하고(자리수를 올리고) 2에서 구한 나머지를 더해줍니다.

4. 입력된 값을 10으로 나눕니다.

 

ex. 4567

1. 반복문은 입력된 값이 0이 아닐때까지만 수행합니다.

2_1. 나머지 연산자로 10을 계산하여 1의자리(나머지)를 구해줍니다.

---> 나머지:7

3_1. rev에 10을 곱하고(자리수를 올리고) 2에서 구한 나머지를 더해줍니다.(rev 초기값 0)

---> 0*10 + 7 = 7

4_1. 입력된 값을 10으로 나눕니다.

--->456

 

2_2. 나머지 연산자로 10을 계산하여 1의자리(나머지)를 구해줍니다.

---> 나머지:6

3_2. rev에 10을 곱하고(자리수를 올리고) 2에서 구한 나머지를 더해줍니다.

---> 7*10 + 6 = 76

4_2. 입력된 값을 10으로 나눕니다.

--->45

 

2_3. 나머지 연산자로 10을 계산하여 1의자리(나머지)를 구해줍니다.

---> 나머지:5

3_3. rev에 10을 곱하고(자리수를 올리고) 2에서 구한 나머지를 더해줍니다.

---> 76*10 + 5 = 765

4_3. 입력된 값을 10으로 나눕니다.

--->4

 

2_4. 나머지 연산자로 10을 계산하여 1의자리(나머지)를 구해줍니다.

---> 나머지:4

3_4. rev에 10을 곱하고(자리수를 올리고) 2에서 구한 나머지를 더해줍니다.

---> 765*10 + 4 = 7654

4_4. 입력된 값을 10으로 나눕니다.

--->0(종료)

 

 

감사합니다.

댓글()