本题只需先求出0-9每一个数字的概率即可,然后A从0遍历到C,算出A每一位数字将概率乘起来,B就是C-A,同样算出每一位数字将概率乘起来,两者概率相乘即可。最后注意分数取模,除法用乘法逆元即可。

附本人ac码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl '\n'
#define mod 998244353
const ll N=1e6+10;
ll ksm(ll x, ll y) {
	ll res = 1;
	while (y) {
		if(y & 1) res = res * x % mod;
		y >>= 1;
		x = x * x % mod;
	}
	return res;
}
ll inv(ll x) {
	return ksm(x, mod - 2);
}
ll a[8],b[10];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int t;
	cin>>t;   
	while(t--)
	{
		int c;
		cin>>c;
		for(int i=1;i<=7;i++)
		{
			cin>>a[i];
		}
		ll x=inv(100000000000000%mod);
		b[0]=a[1]*a[2]*a[3]*a[5]*a[6]*a[7]*(100-a[4])%mod*x%mod;
    	b[1]=a[3]*a[6]*(100-a[1])*(100-a[2])*(100-a[4])*(100-a[5])*(100-a[7])%mod*x%mod;
  		b[2]=a[1]*a[3]*a[4]*a[5]*a[7]*(100-a[2])*(100-a[6])%mod*x%mod;
   	 	b[3]=a[1]*a[3]*a[4]*a[6]*a[7]*(100-a[2])*(100-a[5])%mod*x%mod;
    	b[4]=a[2]*a[4]*a[3]*a[6]*(100-a[1])*(100-a[5])*(100-a[7])%mod*x%mod;
   		b[5]=a[1]*a[2]*a[4]*a[6]*a[7]*(100-a[3])*(100-a[5])%mod*x%mod;
    	b[6]=a[1]*a[2]*a[4]*a[5]*a[6]*a[7]*(100-a[3])%mod*x%mod;
    	b[7]=a[1]*a[3]*a[6]*(100-a[2])*(100-a[4])*(100-a[5])*(100-a[7])%mod*x%mod;
    	b[8]=a[1]*a[2]*a[3]*a[4]*a[5]*a[6]*a[7]%mod*x%mod;
    	b[9]=a[1]*a[2]*a[3]*a[4]*a[6]*a[7]*(100-a[5])%mod*x%mod;
    	int a1,a2,a3,a4,b1,b2,b3,b4;
    	ll sum=0;
    	for(int i=0;i<=c;i++)
    	{
    		a1=i/1000;
            a2=i/100%10;
            a3=i/10%10;
            a4=i%10;
            b1=(c-i)/1000;
            b2=(c-i)/100%10;
            b3=(c-i)/10%10;
            b4=(c-i)%10;
            ll x,y;
            x=b[a1]*b[a2]%mod*b[a3]%mod*b[a4]%mod;
            y=b[b1]*b[b2]%mod*b[b3]%mod*b[b4]%mod;
            sum=(sum+x*y%mod)%mod;
		}
		cout<<sum<<endl;
	}
	return 0;
}