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;

}
}

posted on 2012-11-30 15:11  元点之始  阅读(143)  评论(0编辑  收藏  举报

导航