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 }

 

posted on 2014-01-02 22:45  acm_shun  阅读(203)  评论(0编辑  收藏  举报

导航