列表

详情


NC220789. tjc与sweet

描述


tjc的老师为了鼓励tjc读书,决定给tjc一些读书的奖励。

tjc从第一页开始按顺序读书,从第二页开始,如果tjc读完了第 页书,那么tjc的老师会给tjc一些糖果,糖果的个数是 的数位和的差的绝对值(例如,对于 ,小M会得到 颗糖)。

tjc想知道如果自己读了 页书的话,自己能得到多少糖果呢?


输入描述

第一行一个整数  。

输出描述

一个数,表示得到的糖果数对  取模的结果。

示例1

输入:

10

输出:

16

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

pypy2(pypy2.7.13) 解法, 执行用时: 50ms, 内存消耗: 20448K, 提交时间: 2021-05-18 13:39:08

n = input()
ans = 17*(n//10) + (n%10) - 1
n //= 100
p = 1
while n > 0:
    k = n//10 + 1
    t = n%10
    ans += (9*(k-1)+t)*p*9
    p += 1
    n //= 10
ans %= 1000000007
print(ans)

pypy3(pypy3.6.1) 解法, 执行用时: 44ms, 内存消耗: 18672K, 提交时间: 2021-04-16 19:21:46

K=1000000007
S=input()
ans=(int(S)-1)%K
n=len(S)
now=last=0
for i in range(n-1):
    now=(now*10+int(S[i]))%K
    ans=(ans+(now-last)*((n-i-1)*9-2))%K
    last=now
print(ans)

Python3(3.9) 解法, 执行用时: 47ms, 内存消耗: 6784K, 提交时间: 2021-04-17 09:48:59

n=int(input())
a=n-1
n//=10
c=7
p=int(1E9+7)
while n>0:
    a=a+c*n
    if c==7: c=9
    n//=10
print(a%p)

上一题