1. 程式人生 > >十二週進位制轉換

十二週進位制轉換

問題及程式碼

/*
煙臺大學計算機與控制工程學院
檔名稱: 進位制轉換
作    者:展一
完成時間:2016年11月17日
題目描述
 輸入一個十進位制數N,將它轉換成R進位制數輸出。
輸入
輸入資料包含多個測試例項,每個測試例項包含兩個整數N(32位整數)和R(2<=R<=16, R<>10)。
輸出
  為每個測試例項輸出轉換後的數,每個輸出佔一行。如果R大於10,則對應的數字規則參考16進位制(比如,10用A表示,等等)
樣例輸入
 7 2
23 12
-4 3
樣例輸出
  111
1B
-11
*/
#include<stdio.h>
void binary(int, int);

int main()
{
    int N, R;
    while(scanf("%d %d", &N, &R)!=EOF)
    {
        if(N==0)
            printf("%d",0);
        else if(N<0)
        {
            printf("-");
            N=-N;
        }
        binary(N, R);
        printf("\n");
    }
    return 0;
}

void binary(int n, int r)
{
    int m;
    if(n==0)
        return;
    else
    {
        binary(n/r, r);
        m=n%r;
        if(m<10)
            printf("%d", m);
        else
            printf("%c", 'A'+m-10);
    }
}

執行結果


知識點總結

學習心得