分析:十进制映射到八进制后,如果跳过8到9,实际上只数了7次,如果跳过3到了4-7实际上只数了3-6次。对应关系如下。
0,1,2,3,4,5,6,7,8,9
0,1,2,-,3,4,5,6,-,7
#include<iostream> using namespace std; int main() { int a[10]={0,1,2,0,3,4,5,6,0,7},i; __int64 ans,k; char b[15]; while(gets(b) && b[0]!='0') { ans=0; k=1; for(i=strlen(b)-1;i>=0;i--,k*=8) ans+=a[b[i]-'0']*k; printf("%s: %I64d\n",b,ans); } return 0; }
时间: 2024-10-10 01:24:45