hdoj2031 任意进制转换

来源:互联网 发布:淘宝2015年销售额多少 编辑:程序博客网 时间:2024/05/21 09:11
输入一个十进制数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
#include<stdio.h>int main(){char a[50005];int N,R,i,j;while(scanf("%d %d",&N,&R)!=EOF){if(N<0){printf("-");N=N*-1;}i=0;while(N!=0){a[i]=N%R;if(a[i]>=10)a[i]=65+(a[i]-10);/*按照十六进制规则转换*/N=N/R;i++;}j=i;for(i=j-1;i>=0;i--){/*倒序筛选输出*/if(a[i]<10)printf("%d",a[i]);elseprintf("%c",a[i]);}printf("\n");}return 0;}
0 0