1361数制转换升级
描述
今天的编程课上,刘老师又给大家讲了进制转换的知识。我们知道,任何数据、符号在计算机中都是以二进制的形式表示的,给定一个十进制数,我们很容易就可以转化为二进制数。现在我们要开发一个小工具程序,用来实现任意进制之间的转换。可以将给定的m进制数x转化为n进制的P(所有数数据均能在长整型范围内处理)。
输入
输入只有一行,共有三个数x, m,n(2<=m,n<=10)。
输出
输出只有一个数,那就是转换后的结果P。
输入样例 1
48 10 8
输出样例 1
60
这题是上一题的升级版,上一题是把十进制数转换成n进制数。
这一题是把n进制数转换成m进制数。
我们需要把n进制数转换成十进制数,再转换成m进制数就好了。
代码:
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 string s; 6 int n,m,t=1,x=0,a[205]={0},c=-1,v; 7 cin>>s>>n>>v; 8 m=s.size(); 9 for(int i=m-1;i>=0;i--) 10 { 11 x=x+(s[i]-48)*t; 12 t=t*n; 13 } 14 while(x!=0) 15 { 16 c++; 17 a[c]=x%v; 18 x/=v; 19 } 20 for(int i=c;i>=0;i--) 21 { 22 cout<<a[i]; 23 } 24 return 0; 25 }