进制转换
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 3 int main(){ 4 int number; 5 int system; 6 char s[50]; 7 int i; 8 int length; 9 int flag; 10 11 while((scanf("%d%d",&number,&system))!=EOF){ 12 i=0; 13 flag=0; 14 15 if(number<0){ 16 number=-number; 17 flag=1; 18 } 19 20 while(number){ 21 if(number%system<=9){ 22 s[i]=(number%system)+'0'; 23 } 24 25 else if(number%system==10) 26 s[i]='A'; 27 28 else if(number%system==11) 29 s[i]='B'; 30 31 else if(number%system==12) 32 s[i]='C'; 33 34 else if(number%system==13) 35 s[i]='D'; 36 37 else if(number%system==14) 38 s[i]='E'; 39 40 else if(number%system==15) 41 s[i]='F'; 42 43 number/=system; 44 i++; 45 } 46 length=i; 47 48 if(flag==1) 49 printf("-"); 50 51 for(i=length-1;i>=0;i--) 52 printf("%c",s[i]); 53 54 printf("\n"); 55 56 57 58 } 59 60 61 return 0; 62 }