1161:轉進位制(C C++)

セイバーちゃん發表於2020-10-30

【題目描述】

用遞迴演算法將一個十進位制數X轉換成任意進位制數M(M≤16)。

【輸入】

一行兩個數,第一個十進位制數X,第二個為進位制M。

【輸出】

輸出結果。

【輸入樣例】

31 16 {將十進位制31轉化為十六進位制數}

【輸出樣例】

1F

【程式碼】

#include <iostream>
using namespace std;
char a[17]="0123456789ABCDEF";	//進位制轉換 
void f(int n,int m)
{
	if(n/m) 	//當不為0時 
	 	f(n/m,m);	//遞迴呼叫 
	cout<<a[n%m];//輸出最底層的餘數 反向輸出 
}

int main()
{
	int n,m;
	cin>>n>>m;//輸入十進位制數 與 轉換的進位制 
	f(n,m);//呼叫函式 
}

相關文章