标签:led memory cpp 题意 add change roc appear ext
15 2005 250 1500 999999 0
15: 12 2005: 1028 250: 160 1500: 768 999999: 262143
题意:从1数到10,会跳过3和8。给你一个数,求这个数原来的值。
题解:4被当成3用,5 6 7则代表4,5,6,9代表8,所以这类似8进制数。数值处理下转换成10进制就是原来的值。
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cstdio>
#define N 5005
#define ll long long
using namespace std;
int a[]= {0,1,2,0,3,4,5,6,0,7,0};
ll k;
int main() {
    //freopen("test.in","r",stdin);
    while(~scanf("%I64d",&k)&&k) {
        int num[10];
        int l=0;
        ll kk=k;
        while(k) {
            num[l++]=k%10;
            k/=10;
        }
        ll p=1;
        ll ans=0;
        for(int i=0; i<l; i++) {
            ans+=a[num[i]]*p;
            p*=8;
        }
        printf("%I64d: %I64d\n",kk,ans);
    }
    return 0;
}
Hdu 4278 Faulty Odometer(8进制转10进制)
标签:led memory cpp 题意 add change roc appear ext
原文地址:http://www.cnblogs.com/jhcelue/p/6979247.html