进制转换之十进制整数转换为R进制
一、题目
【题目描述】
输入一个十进制数N,把它转换成R进制数输出。
【Input】输入数据包含多个测试实例,每个测试实例包含两个整数N(int范围)和R(2<=R<=16,R<>10)。
【Ouput】为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,大写字母,等等)
【Sample Input】
7 2
23 12
-4 3
【Sample ouput】
111
1B
-11
二、代码
#include<stdio.h>
int main(){
char hex[16]={ '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int r,s,n,i=0;
int flag=0;
int a[100]={ 0};
for(i=0;i>=0;i++){
scanf("%d%d",&n,&r);
if(n<0){
flag=1;
n=-n;
}
if(n==0){
printf("0");
}
while(n>0){
int m=n%r;
a[i++]=m;
n=n/r;
}
if(flag){
printf("-");
}
for(i=i-1;i>=0;i--){
s=a[i];
printf("%c",hex[s]);
}
printf("\n");
}
return 0;
}
还没有评论,来说两句吧...