求助
查看原帖
求助
538578
yuankaihan123楼主2021/10/6 15:37

为什么我这个代码连样例都过不了呢,请各位路过的大佬指出

#include <bits/stdc++.h>
using namespace std;
unsigned long long n,m,w,a[100],b[100],flag,num;
string s;
int main()
{
	cin>>n>>s>>m;
	w=s.size();
	for(int i=0;i<100;i++)
	{
		a[i]=-1;
		b[i]=-1;
	}
	for(int i=1;i<=w;i++)
	{
		if(s[i]>='0' && s[i]<='9')	a[i]=s[i]-'a';
		if(s[i]=='A')	a[i]=10;
		if(s[i]=='B')	a[i]=11;
		if(s[i]=='C')	a[i]=12;
		if(s[i]=='D')	a[i]=13;
		if(s[i]=='E')	a[i]=14;
		if(s[i]=='F')	a[i]=15;
	}
	for(int i=1;i<=w;i++)
	{
		unsigned long long x;
		for(int j=2;j<=i;j++)	x*=n;
		num+=a[i]*x;
	}
	while(num>0)
	{
		flag++;
		b[flag]=num%m;
		num/=m;
	}
	for(int i=flag;i>=1;i++)	cout<<b[i];
	return 0;
}

我的思路是先把n进制转化为10进制,最后用短除法求出m进制,希望大佬们指出错误,谢谢。

2021/10/6 15:37
加载中...