题目
思路
八进制数567怎么转化为十进制数。首先八进制就是逢八进一,也就是说这里面最大的数也就7,没有≥8的数。下面我们就讲一下567怎么转化为十进制:首先7是个位,可以直接写成十进制的7,6是十位,它是通过个位进了6个8所得,所以其十进制为6×8=48,5是百位,其实通过十位进了5个8×8所得,结果为320,所以最后的十进制数为7+48+320=375。 (5=5*8*8;6=6*8;7=7*1)
代码
#include<bits/stdc++.h>
using namespace std;
int e(string str,int x){
int y[str.length()],w=1;
int ji=0;
for(int i=0;i<str.length();i++){
if(str[i]>='0'&&str[i]<='9')y[i]=str[i]-'0';
else y[i]=str[i]-'A'+10;
}
for(int i=str.length()-1;i>=0;i--){
ji+=y[i]*w;
w*=x;
}
return ji;
}
int main(){
int x;
string str;
cin>>x>>str;
cout<<e(str,x);
}