遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制

我是小白吃飯發表於2020-10-01

這個程式碼僅侷限於正整數,新人初來,多多關照,謝謝謝謝

#include<stdio.h>
int main()
{
    int n;
    printf("輸入要轉化的十進位制正整數:");
    scanf("%d",&n);

    printf("二進位制為:");
    jinzhi_2(n);
    printf("\n");

    printf("八進位制為:");
    jinzhi_8(n);
    printf("\n");

    printf("十六進位制為:");
    jinzhi_16(n);
    printf("\n");
}
void jinzhi_2(int n)
{
 if(n>1){
        jinzhi_2(n/2);      //簡單函式的遞迴,從遞迴的最裡面開始輸出,即可實現餘數的逆序輸出
    }
    printf("%d",n%2);
}
void jinzhi_8(int n)
{
 if(n>7){
        jinzhi_8(n/8);
    }
    printf("%d",n%8);
}
void jinzhi_16(int n)
{
    if(n>15){
        jinzhi_16(n/16);
    }
    printf("%d",n%16);
}

相關文章