跳转至

660. 移除 9 🔒

难度困难

题目描述

1 开始,移除包含数字 9 的所有整数,例如 91929,……

这样就获得了一个新的整数数列:123456781011,……

给你一个整数 n,请你返回新数列中第 n 个数字是多少(下标从 1 开始)。

 

示例 1:

输入:n = 9
输出:10

示例 2:

输入:n = 10
输出:11

 

提示:

  • 1 <= n <= 8 * 108

解法

方法一

思考

去掉所有含数字 \(9\) 的自然数后,求第 \(n\) 个剩余数。直接枚举到第 \(n\) 个合法数,\(n\) 可达 \(9\) 位数时过慢。

不含 \(9\) 等价于用 \(0..8\) 这九个符号计数,即把 \(n\) 写成九进制再按位解释。当前题解页尚未填入实现代码。

1

1

1

1

评论