算法刷题记录
之第1474题
题目描述:
将十进制数n转换成m进制数 m<=16 n<=100
题解:
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<char> ch; //定义栈,来保存反向求余的值
char output[16]={'0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F'};//输出参考
int a,m;
cin>>a>>m;
while(a>0){ //循环反向求余
int c=a%m;
ch.push(output[c]); //压栈
a=a/m;
}
while(ch.size()){
cout<<ch.top(); //输出栈顶
ch.pop(); //栈顶pop
}
cout<<endl;
return 0;
}
解题思路:
通过反向求余的方法来对任意一个十进制的数进行循环求余,同时将结果压栈,然后将结果输出