백준/백준-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);
}