首页 > 其他 > 详细

3H - 进制转换

时间:2019-02-08 23:03:05      阅读:227      评论:0      收藏:0      [点我收藏+]
输入一个十进制数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

// still don‘t know why
技术分享图片
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main()
 4 {
 5     int n, r;
 6     char s[1000];
 7     while(scanf("%d %d", &n, &r)!=EOF)
 8         puts(itoa(n, s, r));
 9     return 0;
10 }
WA
// 
技术分享图片
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n, r, t, i, len, s[1000];
 5     while(scanf("%d %d", &n, &r)!=EOF)
 6     {
 7         if(n==0) printf("0\n");
 8         else
 9         {
10             len=0;
11             if(n<0) 
12             {
13                 printf("-");
14                 n=-n;
15             }
16             for(i=0;n!=0;i++)
17             {
18                 t=n%r;
19                 if(t>=10) s[i]=A+t-10;
20                 else s[i]=t;
21                 len++;
22                 n=n/r;
23             }
24             for(i=0;i<len;i++)
25             {
26                 if(s[len-1-i]>=0&&s[len-1-i]<=9) printf("%d", s[len-1-i]);
27                 else printf("%c", s[len-1-i]);
28             }
29             printf("\n");
30         }
31     }
32     return 0;
33 }
AC

 

3H - 进制转换

原文:https://www.cnblogs.com/goldenretriever/p/10356880.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!