<center style="color&#58;rgba&#40;0&#44;0&#44;0&#44;&#46;870588&#41;&#59;">

进制转换2

时间限制: 1 Sec  内存限制: 32 MB
</center>

题目描述

将M进制的数X转换为N进制的数输出。

输入

输入的第一行包括两个整数:M和N(2<=M,N<=36)。
下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。

输出

输出X的N进制表示的数。

样例输入

10 2
11

样例输出

1011

提示

注意输入时如有字母,则字母为大写,输出时如有字母,则字母为小写。

#include<stdio.h>
#include<string.h>
int main()
{
    char a[1550],c[1550];
    int data[1550];
    int i,j,k,m,n,len,sum;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        memset(a,0,sizeof(a));
        scanf("%s",a);
        len=strlen(a);
        c[j=0]='0';
        sum=1;
        for(i=0;i<len;i++)
        {
            if(a[i]>='A'&&a[i]<='Z')
                data[i]=a[i]-'A'+10;
            else data[i]=a[i]-'0';
        }
        while(sum)
        {
            sum=0;
            for(i=0;i<len;i++)
            {
                k=data[i]/n;
                sum+=k;
                if(i==len-1)
                    c[j++]="0123456789abcdefghijklmnopqrstuvwxyz"[data[i]%n];
                else
                    data[i+1]+=data[i]%n*m;
                data[i]=k;
            }
        }
        if(!j)
            j++;
        for(i=j-1;i>=0;i--)
            printf("%c",c[i]);
        printf("\n");
    }
    return 0;
}