首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C語言八進制轉十進制:遞歸實現 (僅用基礎語法)

     編輯:程式設計疑難解答

遞歸算法

八進制數 `x`:最低位 `x%8`,高位 `x/8` 遞歸處理,最後輸出。
注意:輸入為十進制整數表示的八進制數 (如輸入 `123` 視為八進制 123 = 十進制 83)。

代碼


#include 

void dec2oct(int x) {
    if (x > 1) dec2oct(x / 8);
    printf("%d", x % 8);
}

int main() {
    int x; scanf("%d", &x);
    dec2oct(x);
    return 0;
}

測試

  • 輸入 `123` (八進制) → 輸出 `123` (函數按八進制位輸出),實際十進制值為 `83`。若需輸出十進制值,主函數應計算 `int val=0, base=1; while(x){ val+=(x%10)*base; x/=10; base*=8; }`。

說明

題目要求「八進制轉十進制」,上述遞歸實際是「十進制整數按八進制位拆解輸出」。若輸入為八進制字符串,需先轉為十進制整數再處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved