问题描述
给定整数N,解决以下问题。
令f(x)= (最大为x的与x有相同位数的正整数的个数)。
找出f(1)+f(2)+dots+f(N)在模998244353下的值。
约束条件
- N是一个整数。
- 1leN<1018
输入
输入以以下格式从标准输入给出:
N
输出
以整数形式输出答案。
示例输入1
16
示例输出1
73
- 对于1到9之间的正整数x,最大为x的与x有相同位数的正整数为1,2,dots,x。
- 因此,我们有f(1)=1,f(2)=2,...,f(9)=9。
- 对于10到16之间的正整数x,最大为x的与x有相同位数的正整数为10,11,dots,x。
- 因此,我们有f(10)=1,f(11)=2,...,f(16)=7。
最终答案为73。
示例输入2
238
示例输出2
13870
示例输入3
999999999999999999
示例输出3
762062362
一定要在模998244353下计算总和。