进制转换都采用辗转相除法,相关例子见HDUOJ 2031,代码如下:
#include <iostream>
#include <iomanip>
#include <cmath>
#define PI 3.1415927
using namespace std;
//进制转换,10进制数N转换成R进制
void baseConvert(int N, int R) {
int a[32] = {0};
char b[17]="0123456789ABCDEF";
if(N<0) cout << '-';
int num = abs(N);
int i = 0;
while(num>0) {//辗转相除法
a[i]=num%R;
num = num/R;
i++;
}
for(int j=i-1; j>=0; j--) {
cout << b[a[j]];
}
cout << endl;
}
int main()
{
int N, R;
while(cin>>N>>R) {
baseConvert(N, R);
}
return 0;
}
本文介绍了一种使用辗转相除法实现的从十进制转换为任意进制(R进制)的算法,并提供了完整的C++代码示例。通过此方法,可以将任意一个十进制整数N转换为其对应的R进制形式。

被折叠的 条评论
为什么被折叠?



