输入一个十进制数N,将它转换成R进制数输出。
Input
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
Output
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
Sample Input
7 223 12-4 3
Sample Output
1111B-11 // itoa()是一个非标准的C/C++语言功能,因此不能好好地被所有编译器使用。在大多数Windows下的编译器通常在头文件包含非标准函数。 // 因此在oj中不建议使用非标准C库里的函数 // 附C标准库:
1 #include2 #include 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 }
//
1 #include2 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 =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 }