進制轉換之十進制整數轉換爲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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章