原题链接
题解

code
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod=1e9+7;
ll tag[25]={0};
ll a[25]={0};
ll f(ll now)
{
ll sum=0,pre=0;
ll len=1;
while(now)
{
ll top=now%10;
for(int i=0;i<top;i++) sum=(sum+i*a[len-1]%mod+tag[len-1])%mod;
sum+=top*(pre+1);
sum%=mod;
pre=(top*a[len-1]+pre)%mod;
len++;
now/=10;
}
return sum%mod;
}
int main()
{
a[0]=1;
for(int i=1;i<=19;i++) a[i]=a[i-1]*10LL%mod;
tag[0]=0;
tag[1]=45;
for(int i=2;i<=19;i++)
{
tag[i]=10LL*tag[i-1]%mod+(45LL*a[i-1]%mod);
tag[i]%=mod;
}
ll t;
cin>>t;
while(t--)
{
ll a,b;
cin>>a>>b;
cout<<(f(b)%mod-f(a-1)%mod+mod)%mod<<endl;
}
return 0;
}