文章

13

粉丝

25

获赞

2

访问

7.1k

头像
进制转换3 题解:
P1422 清华大学/厦门大学机试题
发布于2024年6月12日 17:34
阅读数 450

#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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发