0分,感觉思路没问题啊
查看原帖
0分,感觉思路没问题啊
1141389
wan_le楼主2024/8/4 08:51
#include<bits/stdc++.h> 
using namespace std;
#define int long long
int n;

int two(string num)
{
    int ns=num.size();
    int sum=0;
    for(int i=0;i<ns;i++)
    {
        sum=sum*2+num[i]-'0';
    }
    return sum;
}
int ten(string num)
{
    int ns=num.size();
    int sum=0;
    for(int i=0;i<ns;i++)
    {
        sum=sum*10+num[i]-'0';
    }
    return sum;
}
int eight(string num)
{
    int ns=num.size();
    int sum=0;
    for(int i=0;i<ns;i++)
    {
        sum=sum*8+num[i]-'0';
    }
    return sum;
}
int sixteen(string num)
{
    int ns=num.size();
    int sum=0;
    for(int i=0;i<ns;i++)
    {
        if(num[i]>='A'&&num[i]<='F')sum=sum*16+num[i]-'A'+10;
        else sum=sum*16+num[i]-'0';
    }
    return sum;
}

signed main(){
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int x;
        cin>>x;
        string y;
        cin>>y;
        int ans;
        if(x==2)ans=two(y);
        else if(x==8)ans=eight(y);
        else if(x==10)ans=ten(y);
        else if(x==16)ans=sixteen(y);
        cout<<ans<<"\n";
    }
    
    return 0;
}
2024/8/4 08:51
加载中...