/*
    题意:问n以内的数字中包含49串的个数
    数位统计
    先预处理长度为n的所有数字里
    包含49串的个数have[n]
    不包含49的个数_have[n]
    不包含49串中最高位是9的个数_9have[n]

    然后对于输入的n,逐位统计
    用数位统计时是统计[1,n)的,所以一开始n要+1

*/

#include
<cstdio>
#include
<cstring>
#include
<algorithm>
#include
<vector>
#include
<queue>
#include
<iostream>

using namespace std;

const int MAXN = 100010;


long long have[30] , _have[30] , _9have[30];
int bit[30];

void init()
{
    _have[
0= 1;
    
for(int i = 1; i < 20 ; i++)
    
{                       //"49"
        have[i] = 10*have[i-1+ _9have[i-1];
        _have[i] 
= 10*_have[i-1- _9have[i-1];
        _9have[i] 
= _have[i-1];
    }

}


int main()
{
    
//freopen("in","r",stdin);
    init();
    
int T;
    
for(cin>>T ; T-- ;)
    
{
        unsigned 
long long n , _n;
        cin
>>n;
        n
++;
        _n 
= n;
        
int len = 0 , last = 0;
        
while(_n)
        
{
            bit[
++len] = _n%10;
            _n
/=10;
        }

        
long long ans = 0;
        
bool flag = false;
        
for(int i = len ; i ; i --)
        
{
            
for(int j = 0; j < bit[i] ; j++)
            
{
                ans 
+= have[i-1];
                
if(flag) ans += _have[i-1];
                
if(flag == false && j == 4) ans += _9have[i-1];
            }

            
if(last == 4 && bit[i] == 9)flag = true;
            last 
= bit[i];
        }

        cout
<<ans<<endl;
    }

    
return 0;
}