문제
2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오.
입력
첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다.
출력
첫째 줄에 주어진 수를 8진수로 변환하여 출력한다.
예제 입력 1
11001100 |
예제 출력 1
314 |
더보기
Solution
#include<stdio.h>
#include<string.h>
int main(void)
{
int N;
char binary[2][1000002]={'\0', }, octal[333335]={'\0', };
scanf("%s", binary[0]);
if(strlen(binary[0])%3==0)
strcpy(binary[1],binary[0]);
else if(strlen(binary[0])%3==1)
sprintf(binary[1], "00%s", binary[0]);
else
sprintf(binary[1], "0%s", binary[0]);
N=strlen(binary[1]);
for(int i=0;i<N;i+=3)
octal[i/3]='0'+4*(binary[1][i]=='1')+2*(binary[1][i+1]=='1')+(binary[1][i+2]=='1');
printf("%s\n", octal);
return 0;
}
728x90
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 2003번: 수들의 합 2 (0) | 2020.10.13 |
---|---|
<백준 알고리즘> 2018번: 수들의 합 5 (0) | 2020.10.13 |
<백준 알고리즘> 11005번: 진법 변환 2 (0) | 2020.10.13 |
<백준 알고리즘> 18406번: 럭키 스트레이트 (0) | 2020.10.13 |
<백준 알고리즘> 17496번: 스타후르츠 (0) | 2020.10.13 |