WA#18/#20,求助!!!
查看原帖
WA#18/#20,求助!!!
684031
皓月星辉楼主2024/7/22 15:59

求大佬帮忙指点

#include<bits/stdc++.h>
using namespace std;
long long modd=1000000007,ta,tb;
long long ans,a[20],t,x,y;
long long work(long long n)
{
	memset(a,0,sizeof(a));
	x=y=ans=0;
	a[1]=45;
	for(long long i=2;i<=19;i++)a[i]=a[i-1]*10+45*pow(10,i-1);
	for(long long i=n;i>0;i/=10,x++)
	{
		t=i%10;
		//ans=ans+a[x]*t+(t-1)*t/2*pow(10,x)+t*y+t;
		//y=t*pow(10,x)+y;
		ans=(ans+((a[x]*t)%modd+(((t-1)*t)%modd)/2*((long long)(pow(10,x))%modd)%modd)+(t*y%modd)+t)%modd;
		y=((t*((long long)(pow(10,x))%modd)%modd)+y)%modd;
	}
	return ans;
}
int main()
{
	long long T,n,m;
	cin>>T;
	while(T--)
	{
		cin>>n>>m;
		ta=work(n-1);
		tb=work(m);
		cout<<(((tb-ta)%modd)+modd)%modd<<endl;
	}
	return 0;
}
2024/7/22 15:59
加载中...