코딩테스트/C
백준 2745 진법 변환
호중조
2024. 7. 14. 11:11
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define ZERO 48
#define A 65
#define SIZE 100
int main()
{
/* Declare Variables */
char NUMBER[SIZE];
int number[SIZE];
int base;
int ans;
size_t len;
int i;
int temp;
/* Initialize Variables */
memset(NUMBER,'\0',SIZE);
ans = 0;
/* Get Inputs */
scanf("%s", &NUMBER);
scanf("%d", &base);
len = strlen(NUMBER);
/* Convert character to integer */
for (i = 0; i < len; i++)
{
if (NUMBER[i] >= ZERO && NUMBER[i] < A)
{
number[i] = (int)NUMBER[i] - ZERO;
}
else if (NUMBER[i] >= A)
{
number[i] = (int)NUMBER[i] - A + 10;
}
}
/* Convert N base to decimal */
for (i = 0; i < len; i++)
{
temp = number[len - i - 1] * pow(base, i);
ans = ans + temp;
}
/* Print output */
printf("%d\n", ans);
}