#include <bits/stdc++.h>
using namespace std;
const int N = 15;
const int M =1e9 +7;
typedef long long ll;
ll l, r, dp[N], mi[N];
ll ans1[N], ans2[N],www;
int[N],n;
void solve(ll n, ll ans[N]) {
ll tmp = n;
int len = 0;
while (n) a[++len] = n % 10, n /= 10;
for (int i = len; i >= 1; --i) {
for (int j = 0; j < 10; j++) ans[j] += dp[i - 1] * a[i];
for (int j = 0; j < a[i]; j++) ans[j] += mi[i - 1];
tmp -= mi[i - 1] * a[i], ans[a[i]] += tmp + 1;
}
}
int main() {
cin>>n;
for(int xxx=0;xxx<n;xxx++){
www=0;
memset(dp,0,sizeof dp);
memset(mi,0,sizeof mi);
memset(ans1,0,sizeof ans1);
memset(ans2,0,sizeof ans2);
memset(a,0,sizeof a);
scanf("%lld%lld", &l, &r);
mi[0] = 1ll;
for (int i = 1; i <= 13; ++i) {
dp[i] = dp[i - 1] * 10 + mi[i - 1];
mi[i] = 10ll * mi[i - 1];
}
solve(r, ans1), solve(l - 1, ans2);
for (int i = 1; i < 10; i++) www=(www+(ans1[i] - ans2[i])*i)%M;
www=www%M;
cout<<www<<'\n';
}
return 0;
}
感谢回答