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

进制转换,杭电0j-2031

时间:2015-03-15 13:48:11      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

进制转换,杭电0j-2031原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=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
【AC代码】
 1 #include<stdio.h>
 2 void print(int num)
 3 {
 4     if(num == 10) printf("%c", A);
 5     else if(num == 11) printf("%c", B);
 6     else if(num == 12) printf("%c", C);
 7     else if(num == 13) printf("%c", D);
 8     else if(num == 14) printf("%c", E);
 9     else if(num == 15) printf("%c", F);
10     else printf("%d",num);
11 }
12 main()
13 {
14     int a, b, i, j, flag = 0;
15     int c[100];
16     while(~scanf("%d %d", &a, &b))
17     {
18         int i = 0;
19         if(b<2 || b>16 || b==10) break;
20         if(a<0) a = -a, flag = 1;
21         while(a)
22         {
23             c[i] = a%b;
24             a = a/b;
25             i++;
26         }        
27         if(flag) printf("-"), flag = 0;    
28         for(j=i-1; j>=0; j--)
29         print(c[j]);
30         printf("\n");
31     }
32 }

 

 

进制转换,杭电0j-2031

标签:

原文地址:http://www.cnblogs.com/forerve/p/4339548.html

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