这个问题是关于计算在1到N之间,数字1和2出现的总次数,并要求求出这个总数除以20123的余数。这其实是一个经典的字符串处理问题,可以通过编程算法来解决。我们可以使用动态规划或者数学分析的方法来计算F(N)。 让我们分析数字1和2在1到N的序列中的出现规律。对于数字1,我们知道在每个1位数、2位数、3位数等中,1都会出现一次,除了个位是1的情况外,十位和百位也会有1的出现。同样,对于数字2,也有类似的规律。但要注意的是,当N较大时,我们需要考虑更高位的数字出现情况。 为了简化问题,我们可以分别计算数字1和数字2的出现次数,然后相加。对于数字1,我们可以观察到: 1. 在1位数中,1出现1次。 2. 在2位数中(10到19),1出现了10次。 3. 在3位数中(100到199),1在百位出现了100次,在十位出现了90次,在个位出现了10次。 4. 对于更高位的数,可以类似地进行分析。 我们可以发现,对于k位数,1在百位、十位和个位出现的次数分别是10^(k-1),9*10^(k-2),和10^(k-2)。所以,对于数字1的总出现次数F1(N),可以这样计算: F1(N) = Σ[10^(k-2) + 9 * 10^(k-3)] for k从1到log10(N)+1 对于数字2,我们可以用类似的方法计算。不过需要注意,2在个位出现的频率会比1高,因为它在10的倍数中也会出现。所以,对于数字2的总出现次数F2(N),计算方式会稍有不同: F2(N) = Σ[(k-1) * 10^(k-2)] for k从1到log10(N)+1 F(N) = F1(N) + F2(N),并求F(N)对20123取模即可得到输出结果。 在实际编程实现时,可以使用循环或者递归的方式来计算上述公式,并在每次累加时对20123取模,避免溢出。对于输入的N值(1 ≤ N ≤ 10^100),这种计算方法是可行的,因为即使N非常大,计算次数也不会超过100,所以时间复杂度和空间复杂度都是线性的。 对于给定的样例输入10,按照上述方法计算,我们得到F(10) = 3,与样例输出一致。在实际编程解题时,可以编写一个函数,接受N作为参数,返回F(N)对20123取模的结果。这样,无论N的值是多少,都能快速得出正确答案。
2026-01-09 07:26:32 37KB
1
Aviator是一个轻量级、高性能的Java表达式执行引擎,它动态地将表达式编译成字节码并运行。
2024-03-19 18:14:38 413KB Java开发-其它杂项
1
本人写的 数据结构的表达式求值程序 一定准确
2023-12-26 08:03:38 471KB 数据结构 C/c++
1
数据结构,用C++编程实现表达式的求值…………
2023-12-19 08:02:47 46KB 数据结构C++表达式求值的实现
1
C++四则运算表达式求值算法 C++四则运算表达式求值算法
2023-11-26 08:04:38 148KB 四则运算表达式
1
实验三表达式求值程序框架(1).cpp
2023-10-19 16:29:07 3KB
1
数据结构课程设计——算术表达式求值完整版,有程序、结构描述、程序结构截图、体会以及心得
1
简答表达式求值,可以计算整数,用栈和算符优先关系实现
2023-03-27 19:41:06 45KB 表达式求值
1
简单实用的求标准正态分布函数值的算法,误差不超过百万分之一
2023-02-19 09:57:19 4KB 数值算法
1
excel-formula-sdk 注意: 本项目接口仍处于不稳定阶段,接口会随时发生调整。 Excel 公式解析引擎,用于支持公式输入编辑器的智能提示、单元格之间的公式依赖计算、公式的求值、语法校验。 本 SDK 可以与各类编辑器(或输入框)、表格组件配合使用。 支持公式的语法解析、单元格地址解析、单元格范围解析、单元格公式之间的依赖关系管理等。 支持嵌套公式的解析、公式的求值。 支持自动补全、函数签名提示、鼠标浮动提示等 IntelliSense 功能所需要的核心信息,包括当前光标所在的函数上下文、当前光标的参数索引。 词法、语法解析,使用了 。 数学函数的实际执行,使用了 。 安装 在项目目录下,执行 npm i excel-formula-sdk -S 进行安装。 参考 API API 文档请参考 贡献代码
2022-12-23 17:35:01 271KB JavaScript
1