由于考试的时候没有get满分,又看见这个题又重新做了一遍。。。终于满分了;
问题出在0这个数上,以及整型与字母之间的转换上。
#include <cmath>
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
long long int n,b,i=1;//n为输入的数,b为想要转换成的进制
char a[100000];//由于10以上的进制需要用ABCDE等来表示,所以用字符方便的多
cin>>n>>b;
if(n==0) cout<<"0";
else if(b<=10)
{
while(n)
{
a[i]=n%b+'0';
n=n/b;
i++;
}
for(i=i-1;i>=1;i--)
{
cout<<a[i];
}
}
else
{
while(n)
{
a[i]=n%b;
if(a[i]>=10)
a[i]=a[i]+'A'-10;
else a[i]=n%b+'0';
n=n/b;
i++;
}
for(i=i-1;i>=1;i--)
{
cout<<a[i];
}
}
return 0;
}