首页 > 试题广场 >

无限长正整数排列字符串

[编程题]无限长正整数排列字符串
  • 热度指数:165 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}定义无限字符串 S=\texttt{,即将所有正整数依次拼接得到。
\hspace{15pt}珂朵莉想知道该字符串的第 n 个字符是什么。

输入描述:
\hspace{15pt}在一行中输入一个整数 n \left(1 \leqq n \leqq 1000\right)


输出描述:
\hspace{15pt}输出一个数字,表示字符串 S 的第 n 个字符。
示例1

输入

3

输出

3

说明

n=3 时,S=\texttt{,其第 3 个字符为 \texttt{'3'}
示例2

输入

11

输出

0

说明

n=11 时,S=\texttt{,其第 11 个字符为 \texttt{'0'}

备注:

s = int(input().strip())

def find_pos(s):
    if s <= 9:
        return str(s)
    elif s <= 189:
        s -= 9
        index = (s-1) // 2
        pos = (s-1) % 2
        number = 10 + index
        return str(number)[pos]
    else:
        s -= 189
        index = (s-1) // 3
        pos = (s-1) % 3
        number = 100 + index
        return str(number)[pos]

print(find_pos(s))

发表于 今天 14:17:56 回复(0)

问题信息

上传者:牛客301599号
难度:
1条回答 35浏览

热门推荐

通过挑战的用户

查看代码
无限长正整数排列字符串