1158: 零起点学算法65——进制转换
Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 1068 Accepted: 615
[ Submit ][ Status ][ Web Board ]
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
Source
零起点学算法
1 #include<stdio.h>
2 int main(){
3 int n,r,a[ 100 ];
4 while (scanf( " %d%d " ,&n,&r)!= EOF){
5 int flag= 1 ,i= 0 ;
6 if (n< 0 ){
7 flag= 0 ;
8 n=- n;
9 }
10
11 do {
12 a[i++]=n% r;
13 n=n/ r;
14 } while (n);
15
16 if (flag== 0 )
17 printf( " - " );
18 while (i-- ){
19 if (a[i]> 9 ){
20 printf( " %c " , ' A ' +a[i]- 10 );
21 }
22 else {
23 printf( " %d " ,a[i]);
24 }
25 }
26 printf( " \n " );
27 }
28 return 0 ;
29 }
查看更多关于1158: 零起点学算法65——进制转换的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did238290