[C언어 코드업 문제풀이] CodeUp 1416 : 2진수 변환
ET의 공부/C언어 연습문제[ 코드업 ]2020. 4. 7. 08:30
코드업 1416번 2진수 변환 문제 풀이 해답입니다.
1. 문제 설명
어떤 10진수 n이 주어지면 2진수로 변환해서 출력하시오.
예)
10 -----> 1010
0 -----> 0
1 -----> 1
2 -----> 10
1024 -----> 10000000000
2. 입력
10진수 정수 n이 입력된다.
(n은 21억이하의 임의의 수이다.)
3. 출력
2진수로 변환해서 출력한다.
4. 입력 예시
7
5. 출력 예시
111
6. 문제 풀이
#include<stdio.h>
int main(){
int i_num;
scanf("%d",&i_num);
int bin_arr[1000] = {};
int i_Cnt = 0;
for(int i=0; i_num > 0; i++ ){
bin_arr[i] = i_num % 2;
i_num /= 2;
i_Cnt++;
}
i_Cnt -= 1;
if(i_Cnt < 0){printf("%d",bin_arr[0]);}
else{
for(int j = i_Cnt; j>=0; j--){
printf("%d",bin_arr[j]);
}
}
return 0;
}
|
for(int i=0; i_num > 0; i++ ){
bin_arr[i] = i_num % 2;
i_num /= 2;
i_Cnt++;
}
를 통해 2진수를 구할 수있습니다.
만약 5를 이진수로 변환하면 101 가 되는데
5%2의 나머지 1이 남고 입력된 5는 /2를 해서 2가됩니다.
그 후 2%2는 0이되고 2/2는 1, 1%2의 나머지는 1 i_num > 0 이므로 101로 반복이 종료됩니다.
101은 거꾸로 해도 101이지만 배열에는 [1] [00] [100] 이 들어있으므로 반대로 출력해주어야 합니다.
'ET의 공부 > C언어 연습문제[ 코드업 ]' 카테고리의 다른 글
[C언어 코드업 문제풀이] CodeUp 1425 : 자리 배치 (0) | 2020.04.07 |
---|---|
[C언어 코드업 문제풀이] CodeUp 1420 : 3등 찾기 (0) | 2020.04.07 |
[C언어 코드업 문제풀이] CodeUp 1412 : 알파벳 개수 출력하기 (1) | 2020.04.07 |
[C언어 코드업 문제풀이] CodeUp 1411 : 빠진 카드 (0) | 2020.04.06 |
[C언어 코드업 문제풀이] CodeUp 1410 : 올바른 괄호 1 (괄호 개수 세기) (0) | 2020.04.06 |
댓글()