一个十进制数M可以表示为多个R次方的和(M)R=a1a2...an;
M=a1*R^n+a2*R^(n-1)+...+an*R^0;
所以M每次对R取余,可得到从左到右每位次上的数
输入两个数,第一个数代表要进行转换的十进制数。第二个代表要转换的进制R
#include<iostream>
using namespace std;
char arr[105];//因为进制超过10需要用字母来表示,所以用char数组
int main(){
int num,R,n,now;
cin>>num>>R;
if(num<0){
cout<<"-";
num=-num;
}
n=0;
while(num){
now=num%R;
num/=R;
if(now<=9){
arr[n++]='0'+now;
//char数组转换数字需要加上'0'
}
else{
arr[n++]='A'+now-10;
//B表示为'A'+(11-10)
}
}
for(int i=0;i<n;i++){
cout<<arr[n-1-i];
}
}