c語言 10進製數轉n進製(遞迴實現)

2021-10-05 03:05:28 字數 924 閱讀 2510

進製轉換是c語言學習過程中經常會遇到的問題,我們可以通過建立乙個陣列來儲存短除法每次產生的餘數,當商等於0的時候,就不用再繼續做除法了,此時我們只需要把陣列中儲存的餘數從後往前依次列印,就能得到進製轉換的最終結果。

我們也可以簡單的運用遞迴來實現,遞迴使得函式多次自己呼叫自己,當累積呼叫到商等於0的時候,不再進行遞迴呼叫,開始執行列印語句,當前層遞迴列印語句執行完以後返回到上一層,執行上一層的列印語句,直到把累積呼叫的遞迴層數返回完,從而實現了餘數的逆向列印,以此得到了我們想要的結果。

後面有2020.06.04更新內容

遞迴**如下:

#include

void

sysconvert

(int num,

int n)

//十進位制num轉為n進製

2020.6.4更新

當轉換進製大於10的時候,上述**不能用abcdef來正確表示。

非遞迴實現:

#include

#include

using

namespace std;

intmain()

while

(n!=0)

for(

int i=v.

size()

-1;i>=

0;i--

)//輸出轉換後的序列

cout<

}return0;

}

長風破浪會有時,直掛雲帆濟滄海!

十進位制數轉N進製c 實現

編寫乙個演算法,將乙個非負的十進位制整數 n轉換為另乙個基數為b的 b進製整數。include include using namespace std 所要的十進位制轉 b進製的函式 void shift int b,int before char b num b if b 10 定義好大於 10的...

十進位制數轉N進製c 實現

編寫乙個演算法,將乙個非負的十進位制整數 n轉換為另乙個基數為b的 b進製整數。include include using namespace std 所要的十進位制轉 b進製的函式 void shift int b,int before char b num b if b 10 定義好大於 10的...

C 實現10進製轉2進製

這幾天在複習計算機原理,看到二進位制忽然想到二進位制轉10進製的公式,然後轉念一想10進製轉二進位制的公式好像沒印象,那索性自己寫出來。結果學渣的我發現,並不能寫出來!什麼數列,對數,xx函式忘得一乾二淨,而且需要有需要判斷的地方,於是崩潰了,以前代數題並沒寫過條件啊 索性用c 搞出來 雖然在c 裡...