반응형
#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<string.h>
int s;
void binary(int n, int i)
{
if (i == 0 && n <= 3)
{
s = 1;
if (n == 1) s = 0;
}
else s = 2;
for (int i = s; i >= 0; i--)
{
if (n >= pow(2, i))
{
printf("1");
n -= int(pow(2, i));
}
else printf("0");
}
}
int main(void)
{
char input[333444];
scanf("%s", &input);
int len = strlen(input);
if (input[0] == 48) printf("0");
else
{
for (int i = 0; i < len; i++)
{
binary(input[i] - 48, i);
}
}
}
314의 경우 2진법으로 3자리씩 끊어서 출력하는데
3은 2진법으로 011
1은 2진법으로 001
4는 2진법으로 100 이므로
('0'+'1'+'1')+('0'+'0'+'1')+('1'+'0'+'0') = 011001100 이며 맨 앞에 0 이 올 시에 생략해준다는 조건문을 달아주면 된다.
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[C/C++/Python] 백준 16769번 Mixing Milk (0) | 2020.04.24 |
---|---|
[C/C++] 백준 1373번 2진수 8진수 (0) | 2020.04.13 |
[C/C++] 백준 1913번 달팽이 (0) | 2020.04.12 |
[C/C++] 백준 1934번 최소공배수 (최대공약수, 유클리드 호제법 사용) (0) | 2020.04.12 |
[ C/C++] 백준 1009번 분산 처리 (0) | 2020.04.12 |