为什么我这个代码连样例都过不了呢,请各位路过的大佬指出
#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进制,希望大佬们指出错误,谢谢。