3 条题解

  • -1
    @ 2023-11-23 20:51:44
    #include <iostream>
    
    #include <algorithm>
    
    #include <vector>
    
    #include <string>
    
    using namespace std;
    
    void change(int a,string s1,int b,string &s2)
    
    {
    
    vector<int>num;
    
    for(int i=0;i<s1.size();i++){
    
    if(s1[i]<='9') num.push_back(s1[i]-'0');
    
    else if(s1[i]<='Z') num.push_back(s1[i]-'A'+10);
    
    else num.push_back(s1[i]-'a'+36);
    
    }
    
    reverse(num.begin(),num.end());
    
    while(num.size()){
    
    int r=0;
    
    for(int i=num.size()-1;i>=0;i--){
    
    num[i]+=r*a;
    
    r=num[i]%b;
    
    num[i]/=b;
    
    }
    
    ans.push_back(r);
    
    while(num.size()&&num.back()==0)
    
    num.pop_back()
    
    }
    
    reverse(ans.begin(),ans.end());
    
    for(int i=0;i<ans.size();i++){
    
    if(ans[i]<=9) s2+=char(ans[i]+'0');
    
    else if(ans[i]<=35) s2+=char(ans[i]-10+'A');
    
    else s2+=char(ans[i]-36+'a');
    
    }
    
    }
    
    int main()
    
    {
    
    ios::sync_with_stdio(false);
    
    cin.tie(0);
    
    int t;
    
    cin>>t;
    
    while(t--){
    
    int a,b;
    
    string s1,s2;
    
    cin>>a>>b>>s1;
    
    change(a,s1,b,s2);
    
    cout<<a<<" "<<s1<<endl;
    
    cout<<b<<" "<<s2<<endl;
    
    cout<<endl;
    
    }
    
    return 0;
    
    }
    

    信息

    ID
    35
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    102
    已通过
    74
    上传者