同hud2089
#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<iomanip>
#include<map>
#include<algorithm>
#include<queue>
#include<set>
#define inf 10000000
#define pi acos(-1.0)
#define eps 1e-8
#define seed 131
using namespace std;
typedef pair<int,int> pii;
typedef unsigned long long ULL;
typedef long long LL;
const int maxn=100005;
LL N;
LL dp[70][3];
LL solve(LL x);
int main()
{
int t;
scanf("%d",&t);
memset(dp,0,sizeof(dp));
dp[0][0]=1;
for(int i=1;i<=70;i++)
{
dp[i][0]=dp[i-1][0]*10-dp[i-1][1];
dp[i][1]=dp[i-1][0];
dp[i][2]=dp[i-1][2]*10+dp[i-1][1];
}
while(t--){
scanf("%I64d",&N);
printf("%I64d\n",solve(N+1));
}
return 0;
}
LL solve(LL x)
{
LL ans=0;
int digit[70];
int cnt;
for(cnt=1;;cnt++)
{
digit[cnt]=int(x%10);
x/=10;
if(x==0)
break;
}
digit[cnt+1]=-1;
bool flag=false;
for(int i=cnt;i>0;i--)
{
ans+=digit[i]*dp[i-1][2];
if(flag)
ans+=digit[i]*dp[i-1][0];
else
{
if(digit[i]>4)
ans+=dp[i-1][1];
}
if(digit[i+1]==4&&digit[i]==9)
flag=true;
}
return ans;
}