hihoCoder #1349 Nature Numbers

题目大意

考虑自然数构成的序列 a01234567891011,序列下标从 0 开始,即 a0=0,a1=1
an0n1018)。

解法

an 所在的数字为 x(n)
首先不难求出 x(n) 的位数, 设其为 k
从而可以求出 x(n) 是第几个 k 位数,这样也就求出了 x(n)
x(n) 是第 ii1)个 k 位数,则有

i=n+1sk1k

a/ba0,b>0)用代码可表示为(a + b - 1) / b
其中,sk1 表示「位数不超过 k1 的自然数」的位数之和。
进一步,可以求出 anx(n) 第几位。
比较方便的办法是,把个位作为第 0 位,十位作为第 1 位,百位作为第 2 位,以此类推;
这样,x 的第 j 位可以表示为 x / pow(10, j) % 10
anx(n) 的第 j 位,则有

j=ik(n+1sk1)

posted @   Pat  阅读(266)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
点击右上角即可分享
微信分享提示