只考虑所有数都是int型的情况
#include<iostream>
using namespace std;
double power(int q, int n); //声明x的n次方函数
int main()
{
int q; //当前进制
int N; //当前数的长度
int num; //读入数据
int result=0;
cout<<"请输入当前进制q和当前进制数的位数N:"<<endl;
cin>>q>>N;
cout<<"请输入当前的进制数:"<<endl; //输入时一位一位的输入
for(int i =N-1; i>=0 ;i--)
{
cin>>num;
result += num*power(q, i);
}
cout<<"转换为10进制数为:"<<result<<endl;
return 0;
}
double power(int q, int n)
{
int result=1;
while(n--)
{
result *=q;
}
return result;
}
结果:
测试了其他进制:
比如2位的8进制数23
结果得到19.也正确。