小白編程題:十進(jìn)制轉(zhuǎn)R進(jìn)制
描述
輸入兩個十進(jìn)制數(shù)N,R。將十進(jìn)制數(shù)N轉(zhuǎn)換成R進(jìn)制數(shù)輸出。
輸入
輸入數(shù)據(jù)包含多個測試實例,對于每組測試用例:
輸入兩個整數(shù)N (|N| <= 108) 和 R(2 <= R <= 16, R ≠ 10)。
輸出
輸出轉(zhuǎn)換后的數(shù),每個輸出占一行。如果R大于10,則對應(yīng)的數(shù)字規(guī)則參考16進(jìn)制(比如,10用A表示,等等)。
輸入樣例 1
7 2
23 12
-4 3
輸出樣例 1
111
1B
-11
//ASCII碼思路重構(gòu)進(jìn)制轉(zhuǎn)換(二)
#include<stdio.h>
char itoc(int n){
if(n>=0&&n<10)
return n+48;
else if(n>=10&&n<=16)
return n+55;
else
return 0;
}
int main(){
int n,r;
while(scanf("%d %d",&n,&r)!=EOF){
int a[100]={0};
int temp;
if(n>0){
temp=n;
}
else if(n<0){
temp=-n;
}
else{
printf("0\n");
continue;
}
int i=0;
for(;temp!=0;i++){
a[i]=temp%r;
temp/=r;
}
char m[100]={'\0'};
for(int t=i-1,z=0;t>=0;t--,z++){
m[z]=itoc(a[t]);
}
if(n<0){
printf("-");
}
puts(m);
}
return 0;
}

浙公網(wǎng)安備 33010602011771號