坑:输入N可能为负数
解决:判断N的正负值,若N为负值,输出“-”,再将N转换为正数,之后再进行后续处理。
using namespace std;
const int MAX=100000;
#include<bits/stdc++.h>
int main(){
int N,R;
cin>>N>>R;
int c=0;
int A[MAX];
if(N<0)
{
cout<<"-";
N=-N;
}
while(N>=R){
int t=N%R;
A[c++]=t;
N=N/R;
}
A[c++]=N;
for(int i=c-1;i>=0;i--)
{
switch (A[i])
{
case 10: cout<<"A"; break;
case 11: cout<<"B";break;
case 12:cout<<"C";break;
case 13:cout<<"D";break;
case 14:cout<<"E";break;
case 15:cout<<"F";break;
default:
cout<<A[i];
}
}
cout<<endl;
return 0;
}