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

3H - 进制转换

时间:2019-02-08 23:30:35      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:code   lse   one   none   isp   puts   why   put   规则   

输入一个十进制数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 - 进制转换

标签:code   lse   one   none   isp   puts   why   put   规则   

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

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