码迷,mamicode.com
首页 > 其他好文 > 详细

杭电2031进制转换

时间:2015-08-11 20:40:02      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

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
 
 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <cmath>
 4 int a[32];
 5 int main()
 6 {
 7     int N, R, k;
 8     while(~scanf("%d%d", &N, &R))
 9     {
10         k = 0;
11         //memset(a, 0, sizeof(a));
12         if(R > 16 || R < 2 || R == 10)
13             continue;
14         if(N < 0)    printf("-");
15         while(N)
16         {
17             a[k++] = abs(N%R);
18             N = abs(N/R);
19         }
20         if(R < 10)
21         {
22             for(int j = k-1; j >= 0; j--)
23                 printf("%d", a[j]);
24         }
25         else
26         {
27             for(int j = k - 1; j >= 0; j--)
28                 printf("%X",a[j]);//以十六进制输出 
29         }
30         printf("\n");
31     }
32     return 0;
33 }

 

杭电2031进制转换

标签:

原文地址:http://www.cnblogs.com/digulove/p/4721682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!