世界上最简单易懂的代码:
#include<bits/stdc++.h>
using namespace std;
const long long mod=1e9+7;
int t,ll,lr;
long long l,r,ans;
char sl[20],sr[20];
int lltoa(char *s,long long num){
int k=0;
while(num){
s[k++]=num%10;
num/=10;
}
return k;
}
long long sp(char s,int k){
//if(!k) return (1+s)*s/2;
return (long long)pow(10,k-1)%mod*s*45%mod+(long long)pow(10,k)%mod*(1+s)*s/2%mod;
}
long long work(char *s,int len){
long long ans=0;
for(int i=0;i<len;i++) ans=(ans+sp(s[i],i))%mod;
return ans;
}
int main(){
scanf("%d",&t);
while(t--){
scanf("%lld%lld",&l,&r);
l--;
ll=lltoa(sl,l);
lr=lltoa(sr,r);
ans=work(sr,lr)-work(sl,ll);
ans=(ans%mod+mod)%mod;
printf("%lld\n",ans);
}
return 0;
}