CodeUp

CodeUp 4013 : 진법 변환

E.W.I 2021. 7. 24. 19:39
반응형

https://codeup.kr/problem.php?id=4013 

 

진법 변환

[문제 3] 10진수를 입력받아 2진수, 8진수, 16진수로 변환하는 프로그램을 작성하시오. 예를 들어 십진수 15를 입력받아서 2진수로 변환하면 “1111” 이며, 8진수로 변환하면 “17” 이며, 16진수로

codeup.kr

 

 

[문제 풀이]

 

1. 2진수의 특성을 이용해 2로 나눈 값들을 배열에 저장해줍니다.

2. 2로 나누어 값을 작게 만들고 만약 2로 나눈 값이 0이면 while을 벗어나 줍니다

3. 숫자를 뒤에서 부터 읽기 때문에 출력할때는 역순으로 출력을 해야합니다.

 

 

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main()
{
    int n, twonumber, i = 0;
    scanf("%d"&n);
    twonumber = n;
    int two[20= { 0 };
 
    while (twonumber > 0)
    {
        two[i] = twonumber % 2;
        twonumber = twonumber / 2;
        i++;
    }
    printf("2 ");
    for (int j = i - 1; j >= 0; j--)
    {
        printf("%d", two[j]);
    }
    printf("\n");
 
    printf("8 %o\n", n);
    printf("16 %X\n", n);
 
    return 0;
}
cs

'CodeUp' 카테고리의 다른 글

CodeUp 4592: 색종이1  (0) 2021.08.03
CodeUP 4566: 소수  (0) 2021.08.02
CodeUp 4051: 시간외 근무 수당  (0) 2021.07.25
CodeUp 4016: 세 수의 최대공약수 구하기  (0) 2021.07.24