1 条题解

  • 0
    @ 2025-2-14 21:22:42

    C++ :

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    const int maxn=1000;
    using namespace std;
    int t[maxn],A[maxn];
    char str1[maxn],str2[maxn];
    int n,m;
    void solve(char *str1,char *str2,int n,int m)
    {
        int i,len,k;
        len=strlen(str1);
        for(i=len;i>=0;i--)
        {
            t[len-1-i]=str1[i]-(str1[i]<58?48:str1[i]<97?55:61);
        }
        for(k=0;len;)
        {
            for(i=len;i>=1;i--)
            {
                t[i-1]+=t[i]%m*n;
                t[i]/=m;
            }
            A[k++]=t[0]%m;
            t[0]/=m;
            while(len>0&&!t[len-1])
            {
                len--;
             }
        }
        str2[k]=NULL;
        for(i=0;i<k;i++)
        {
            str2[k-1-i]=A[i]+(A[i]<10?48:A[i]<36?55:61);
        }
    }
    int main()
    {
        while(cin>>str1)
        {
            solve(str1,str2,10,2);
            cout<<str2<<endl;
        }
    }
    
    • 1

    信息

    ID
    873
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者