进制转换
【题目描述】
小美刚刚学习了十六进制,她觉得很有趣,想到是不是还有更大的进制呢?
在十六进制中,用‘A’表示10、‘F’表示15。如果扩展到用‘Z’表示35,岂不是可以表示36 进制数了嘛!
【输入格式】
输入2 行,第一行包含一个正整数N,第二行包含一个正整数R。
保证1≤N≤1000000,2≤R≤36
【输出格式】
输出1 行,为N 的R 进制表示。
【样例输入】
123
25
【样例输出】
4N
分析
十进制转其它进制,过程如下
求余数,然后再整除,再求余数,再整除,直至整除的结果为0。举例如下:
十进制4转换为2进制
4%2,余数为0,4/2结果为2;
2%2,余数为0,2/2结果为1;
1%2,余数为1,1/2结果为0,转换结束;
余数倒过来即为结果100,其它进制转换过程类似。
#include<bits/stdc++.h>
using namespace std;
const int N=100;
char a[N];
char trans(int n)
{
char a;
if(n<10)
a=n+'0';
else
a=n-10+'A';
}
int main()
{
int n,t,cnt=0;
cin>>n>>t;
while(n)
{
a[cnt]=trans(n%t);
n=n/t;
cnt++;
}
for(int i=cnt-1;i>=0;i--)
cout<<a[i];
return 0;
}