2031 进制转换
Problem Description
输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 2
23 12
-4 3
Sample Output
111
1B
-11
code:
1 #include<iostream> 2 using namespace std; 3 4 int main(){ 5 int n,r,k,i; 6 char m[33]; 7 while(cin >> n >> r) 8 { 9 if(n<0) 10 { 11 n=-n; 12 cout << "-"; 13 } 14 if(n==0) 15 { 16 cout << 0 <<endl; 17 continue; 18 } 19 for(i=0;n>0;i++) 20 { 21 k=n%r; 22 n/=r; 23 if(k>9) 24 { 25 m[i]=k-10+'A'; 26 } 27 else 28 m[i]=k+'0'; 29 } 30 for(;i>0;i--) 31 cout << m[i-1]; 32 cout <<endl; 33 } 34 return 0; 35 }