首先 如果产生进位的话是一定不对的,因为进位会给一个1,但是损失了10
然后可以按位直接考虑,转换成一个隔板法组合数问题
// Problem: E. Good Triples
// Contest: Codeforces - Codeforces Round 913 (Div. 3)
// URL: https://codeforces.com/contest/1907/problem/E
// Memory Limit: 256 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N = 2e5+10;
ll c[25][25];
void init()
{
c[0][0] = 1;
for(int i=1;i<=23;i++)
for(int j=0;j<=i;j++)
{
if(!j)c[i][j] = 1;
else c[i][j] = c[i-1][j] + c[i-1][j-1];
}
}
void solve()
{
int x;cin>>x;
ll res = 1;
while(x){
int t = x%10;
res*=c[t+2][2];
x/=10;
}
cout<<res<<"\n";
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
init();
int _;cin>>_;
while(_--)solve();
return 0;
}