백준/백준-C++

11816번: 8진수, 10진수, 16진수

Beabletoet 2017. 6. 4. 23:40

#include<cstdio>

#include<algorithm>

#include<cstring>

int main()

{

char num[10], realnum[8];

int x = 0;

scanf("%s", &num);

if (num[1] == 'x')

{

for (int i = 0; i < 8; ++i)

realnum[i] = num[i + 2];

for (int i = strlen(realnum) - 1, sq = 1; i > -1; --i, sq *= 16)

if (realnum[i] >= 'a')

x += ((int)realnum[i] - (int)'a' + 10)*sq;

else

x += ((int)realnum[i] - (int)'0')*sq;

}

else if (num[0] == '0')

{

for (int i = 0; i < 8; ++i)

realnum[i] = num[i + 1];

for (int i = strlen(realnum) - 1, sq = 1; i > -1; --i, sq *= 8)

x += ((int)realnum[i] - (int)'0')*sq;

}

else

x = atoi(num);

printf("%d", x);

}