请求大佬查漏,高精为什么就爆掉了?
#include<bits/stdc++.h>
using namespace std;
char a[1001],b[1001];
int n,ans=0,f[17]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},v1,v2,s[1001];
int main(){
cin>>n;
cin>>a>>b;
v1=strlen(a);
v2=strlen(b);
for(int i=1;i<=v1;i++){
s[i]=a[v1-i]-48;
}
for(int i=1;i<=v2;i++){
s[i]+=b[v2-i]-48;
s[i+1]+=s[i]/10;
s[i]%=10;
}
v1=max(v1,v2);
for(int i=1;i<=v1;i++){
s[i]+=s[i+1]*10;
s[i+1]=0;
for(int j=i+2;j<=v1&&s[i]<f[n];j++){
s[i]+=s[j]*pow(10,j);
s[j]=0;
}
s[i+1]=s[i]/f[n];
s[i]%=f[n];
}
v1++;
while(!s[v1])
v1--;
while(s[v1]>=f[n]){
s[v1+1]+=s[v1]/f[n];
s[v1]%=f[n];
v1++;
}
char w;
for(int i=v1;i>0;i--){
if(s[i]<10)
cout<<s[i];
else{
w=65+s[i]-10;
cout<<char(w);
}
}
return 0;
}