转进制
链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1161
【题目描述】
用递归算法将一个十进制数X转换成任意进制数M(M<=16)。
【输入】
一行两个数,第一个十进制数X,第二个为进制M。
【输出】
输出结果。
【输入样例】
31 16 {将十进制31转化为十六进制数}
【输出样例】
1F
【题解】倒取余可以考虑栈
#include <iostream> #include<stdio.h> #include<stack> using namespace std; stack <int> v; void swap(int x, int d){ do{ v.push(x%d);x/=d; }while(x); while(!v.empty()){ if(v.top()<10)cout<<v.top(); else{ printf("%c",v.top()-10+'A'); } v.pop(); } } int main(){ int x,m; cin>>x>>m; swap(x,m); }