文章
13
粉丝
17
获赞
2
访问
3.8k
#include<iostream>
#include<stack>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
string s;
cin>>s;
long long sum = 0;
for(int i = 0;i<s.size();i++)
{
sum *= a;
if(s[i]<='9'&&s[i]>=0) sum+= s[i] - '0';
else sum += 10 + s[i] - 'A';
}
stack<char> s1;
while(sum>0)
{
if( sum % b <10) s1.push('0' + sum%b);
else s1.push('a' + sum%b - 10);
sum /= b;
}
while(!s1.empty())
{
cout<<s1.top();
s1.pop();
}
return 0;
}
啊啊啊,一直卡80通过,最后发现在进制过大的时候 如果sum 是int类型就无法容纳,换成longlong顺利ak
登录后发布评论
暂无评论,来抢沙发