HDU 4278 网络赛水题

 这道题就是一道进制之间的转换问题,

八进制转换为十进制,不过由题意可知表上没有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;

}
}

原文地址:https://www.cnblogs.com/lfyy/p/2796262.html