一、題目
【題目描述】
輸入一個十進制數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;
}