天天看点

zoj 1334 进制转换类问题

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <math.h>

int main(void)

{

char in[1000];

int num[1000];

int from ,to,i;

while (scanf("%s",in)!= EOF )

{

int key = 0;

int result[1000],j;

scanf("%d %d",&from,&to);

int len = strlen(in);

num[len] = '/0';

for (i=0;i<len;i++)

{

if (in[i]>'9')

num[i] = in[i] - 'A' + 10;

else

num[i] = in[i] - '0';

}

for (i=len-1;i>=0;i--)

{

int temp = pow(from,len-1-i);

num[i] = num[i] *temp;

key += num[i] ;

}

i = 0;

while (key)

{

result[i++] = key%to;

key /= to;

}

result[i] = '/0';

if (i>7)

{

printf(" ERROR/n");

}

else

{

for (j=0;j<7-i;j++)

printf(" ");

for (j=i-1;j>=0;j--)

if(result[j] > 9)

printf("%c",result[j]-10+'A');

else

printf("%d",result[j]);

printf("/n");

}

}

return 0;

}