[C언어] 정수를 뒤집는(반전) 방법
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(종료)
감사합니다.
'ET의 공부 > C언어' 카테고리의 다른 글
[C언어] 최소 공배수 계산 방법 (0) | 2020.12.15 |
---|---|
[C언어] 최대 공약수 계산 방법 (0) | 2020.12.15 |
[C언어] 피보나치 수열을 출력하는 방법 (0) | 2020.12.13 |
[C언어] 구구단을 출력하는 방법 (0) | 2020.12.13 |
[C언어] While문을 활용한 정수의 합 (0) | 2020.12.13 |