P1590 失踪的7
进制转换的题目,如果把一个10进制的数当成9进制,相当于没有9这个数字,题目失踪了7,但是无所谓。如果当前的大于7,它就跳过了一个数字,向左移动1位。
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstring>
#define inf 2147483647
#define For(i,a,b) for(register long long i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar()
//by war
//2017.10.23
using namespace std;
long long t,n;
char a[];
long long len;
long long P[];
long long ans;
void in(long long &x)
{
long long y=;
char c=g();x=;
while(c<''||c>'')
{
if(c=='-')
y=-;
c=g();
}
while(c<=''&&c>='')x=x*+c-'',c=g();
x*=y;
}
void o(long long x)
{
if(x<)
{
p('-');
x=-x;
}
if(x>)o(x/);
p(x%+'');
}
int main()
{
in(t);
P[]=;
For(i,,)
P[i]=P[i-]*;
while(t--)
{
ans=;
cin>>a;
len=strlen(a);
For(i,,len-)
{
if(a[i]>'')
a[i]-=;
ans+=(a[i]-'')*P[len--i];
}
o(ans),p('\n');
} return ;
}