#include <stdio.h>
char num[30];
int two[30];
int cnt(void); //자리수 세기
void two_put(int c); //자리 개수만큼 2의 제곱수 구하기
int change(int c); //2진수를 10진수로 바꾸기
int main(void)
{
int c, result;
scanf("%s", num);
c=cnt();
two_put(c);
result=change(c);
printf("%d ", result);
return 0;
}
int cnt(void)
{
int i=0, c=0;
while(1)
{
if(num[i]=='\0')
break;
c++;
i++;
}
return c;
}
void two_put(int c)
{
int i, j;
for(i=0; i<c; i++)
{
two[i]=1;
for(j=1; j<(c-i); j++)
two[i]*=2;
}
}
int change(int c)
{
int i, sum=0;
for(i=0; i<c; i++)
{
if(num[i]=='1')
sum+=two[i];
}
return sum;
}
2018.01.03 20:17
정올 - 실력키우기 - 이진수(2814)
조회 수 259 추천 수 0 댓글 0