用户:
学习GMS2的星烬有多辣寄查看:2 回复:2 评论:2 创建时间:2021-07-23T22:05:39
#include <iostream>
using namespace std;
int main(){
int n,r,i=0;
char q_ch;
int q_int;
int length=0;
char arr[999999];
//声明变量
cin >> n >> r;
//读入数据
do{
q_int = n%r;
if(q_int > 9){
q_ch='A'+q_int-1;
}else{
q_ch='1'+q_int-1;
}
cout << "i:" << i << endl;
cout << "q_int:" << q_int << endl;
cout << "q_ch:" << q_ch << endl;
arr[i]=q_ch;
n/=r;
i++;
length++;
cout << endl << endl;
}while(n>=r);
//循环取余
if(q_int+1 != r){
q_int = n%r;
if(q_int > 9){
q_ch='A'+q_int-1;
}else{
q_ch='1'+q_int-1;
}
cout << "i:" << i << endl;
cout << "q_int:" << q_int << endl;
cout << "q_ch:" << q_ch << endl;
arr[i]=q_ch;
n/=r;
i++;
length++;
cout << endl << endl;
}
//如果需要,补充一次循环
for(int j = length-1;j>=0;j--){
cout << arr[j];
}
//输出结果
return 0;
}
稍微优化了一些
10进制数N转R进制数
R为非负整数,且R>1
N也为非负整数
转换进制后的数的数位不得超过999999