#include<cstdio>
#include<iostream>
#include<cmath>
#define mod (int)(1e9+7)
using namespace std;
int main()
{
int t,n;
scanf("%d",&
t);
while(t--
)
{
scanf("%d",&
n);
long long ans1 = (
1+n)*n/
2,ans2 =
1,ans3 = (
1+n)*n/
2;
long long a1,a2,a3;
int i,j;
for(i =
1;i < n;i++
)
{
a1 = n*(n-i)%
mod;
for(j = n-i-
1;j >
0;j--
)
a1 -=
j;
a1 = a1*(
int)pow(
10,i)%
mod;
ans1 = (ans1+a1)%
mod;
}
for(i =
1;i < n;i++
)
{
a2 = (n-i)*(i+
1)%
mod;
int k =
1;
for(j = i+
1;j >
0;j--
)
{
if((n-i-k)==
0)
break;
a2 = (a2-(n-i-k))%
mod;
k++
;
}
a2 = a2*(
int)pow(
10,i)%
mod;
ans2 = (ans2+a2)%
mod;
}
for(i =
1;i < n;i++
)
{
a3 = (
1+n-i)*(n-i)/
2%
mod;
a3 = a3*(
int)pow(
10,i)%
mod;
ans3 = (ans3+a3)%
mod;
}
printf("%lld %lld %lld\n",ans1,ans2,ans3);
}
return 0;
}
先记录下。。因为还不会逆元。大数无法处理!!! 注意:这个不是AC代码
转载于:https://www.cnblogs.com/llal/p/5936659.html