这道题就是一道进制之间的转换问题,
八进制转换为十进制,不过由题意可知表上没有3和8两个数,所以在处理上应注意
顺序为{0,1,2,0,3,4,5,6,0,7}
写的时候可以用字符串处理,从左往右;
也可以从右往左用数字处理,我采用的后者;
#include<iostream>
using namespace std;
int a[10] = {0,1,2,0,3,4,5,6,0,7};
int main()
{
long long int N,sum,k,n;
while(cin>>N,N)
{
sum = 0;
k = 1;
n = N;
while(N)
{
sum += a[N%10]*k;
N /= 10;
k = k*8;
}
cout<<n<<": "<<sum<<endl;
}
}