C++ 进制转换(HDUOJ 2031)

来源:互联网 发布:win10怎么装不了mysql 编辑:程序博客网 时间:2024/06/06 21:38

进制转换都采用辗转相除法,相关例子见HDUOJ 2031,代码如下:



#include <iostream>#include <iomanip>#include <cmath>#define PI 3.1415927using 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;}