社区讨论

萌新求助

P4999烦人的数学作业参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi7yzyt8
此快照首次捕获于
2025/11/21 05:55
4 个月前
此快照最后确认于
2025/11/21 05:55
4 个月前
查看原帖
CPP
#include <cstdio>
#include<iostream>
using namespace std;
unsigned long long n,ans[15]={0,1,3,6,10,15,21,28,36,45},mod=1e9+7,m,r;
int getn (int n)
{
    if (n<0)
        return 0;
    return n;
}
long long get(long long n)
{
    long long ars=0,a=1,b=0;    
    while (n>0)
    {
        ars=ars+a*(45*(n/10)+ans[getn(n%10-1)%mod])+((n%10)*(b+1)+mod)%mod;
        b=b+(n%10)*a%mod;a*=10%mod;
        n/=10;
    }
    return ars%mod; 
}
int main()
{
    scanf("%lld",&m);
    for (int i=1;i<=m;i++)
    {
        scanf("%lld%lld",&n,&r);
        printf("%lld\n",(3*mod+(mod+((((get(r)-get(n-1)+mod)%mod+mod)%mod+mod)%mod+mod)%mod)%mod)%mod);
    }    
}
同学帮忙问的,第18和20个点过不去
谢谢dalao

回复

1 条回复,欢迎继续交流。

正在加载回复...