1. 程式人生 > >將一個十進位制資料轉換為M進位制

將一個十進位制資料轉換為M進位制

題目描述

【問題描述】
用遞迴演算法將一個十進位制數X轉換成任意進位制數M(M<=16)。

其中X最大為7位整數

【輸入樣例】
31 16 {將十進位制31轉化為十六進位制數}
【輸出樣例】
1F

輸入

輸入2個整數,在同一行裡面,每個整數之間用一個空格隔開

輸出

輸出一個數,為轉換之後的資料

樣例輸入

31 16

樣例輸出

1F
#include<iostream> 
using namespace std; 
int abc(int n,int m)  
{  
    char a='A',b; 
    if(n==0)  
        return 0;  
    else
    {  
        abc(n/m,m);  
        if(n%m>=10) 
        { 
            b=a+(n%m-10); 
            cout<<b; 
        } 
        else
            cout<<n%m;  
    }  
}  
  
int main() 
{ 
    int n,m; 
    while(cin>>n>>m) 
    { 
        if(n==0) 
            cout<<"0"<<endl; 
        else
        { 
            if(n<0) 
            { 
                n*=-1; 
                cout<<"-"; 
            } 
            abc(n,m); 
            cout<<endl; 
        } 
    } 
    return 0; 
}