题目1080:进制转换

来源:互联网 发布:淘宝客服公司 编辑:程序博客网 时间:2024/06/06 07:36
#include "iostream"#include "stdio.h"#include <vector>#include <cstring>#include <algorithm>#include <string>#include <string.h>#include <stack>#include <ctype.h>using namespace std;//1080int m,n,l,sum,t,k;string s;int in[1010],out[1010];int main(){    while(cin>>m>>n){        memset(out,0,sizeof(out));        cin>>s;        l=s.length();        for(int i=0;i<l;i++)            if( isalpha(s[i]) )                in[i]=s[i]-'A'+10;            else                in[i]=s[i]-'0';        sum=1;t=0;k=0;        while(sum){            sum=0;            for(int i=0;i<l;i++){                t=in[i]/n;                sum+=t;                if(i==l-1)                    out[k++]=in[i]%n;                else                    in[i+1] += (in[i]%n)*m;                in[i]=t;            }        }                 for(int i=k-1;i>=0;i--)            if(out[i]>9)                printf("%c",out[i]-10+'a');            else                printf("%d",out[i]);         printf("\n");    }    return 0;}/**************************************************************    Problem: 1080    User: cust123    Language: C++    Result: Accepted    Time:90 ms    Memory:1528 kb****************************************************************/

0 0