题目:将非负十进制整数n转换成b进制
算法分析
对于任意10进制数,将其对进制取余数,即为其在第一位的数,在取余数,得到第二位的数,以此类推。
源代码
#include <iostream>
using namespace std;
int out[100]; //记录转换进制后每位的数字
int num=0; //
//递归实现任意进制转换
void change(int a,int b) //a为转换数,b为要转换的进制
{
if(a>=b) //此时要转化的数仍大于进制
{
change(a/b,b);
out[num]=a%b; //余数即为该位的数
num++;
}
else //当前位就是转换数
{
out[num]=a;
num++;
return;
}
}
int main(int argc, char** argv)
{
int a,b;
cout<<"请输入要转换的数字:";
cin>>a;
cout<<"请输入要转换为几进制:";
cin>>b;
change(a,b);
for(int i=0;i<num;i++) //输出
cout<<out[i]<<" ";
}