#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)
조회 수 224 추천 수 0 댓글 0