(python)百练1019:Number Sequence

来源:互联网 发布:c语言基础的内容及要求 编辑:程序博客网 时间:2024/06/03 05:06

题目:

描述
A single positive integer i is given. Write a program to find the digit located in the position i in the sequence of number groups S1S2...Sk. Each group Sk consists of a sequence of positive integer numbers ranging from 1 to k, written one after another.
For example, the first 80 digits of the sequence are as follows:
11212312341234512345612345671234567812345678912345678910123456789101112345678910
输入
The first line of the input file contains a single integer t (1 ≤ t ≤ 10), the number of test cases, followed by one line for each test case. The line for a test case contains the single integer i (1 ≤ i ≤ 2147483647)
输出
There should be one output line per test case containing the digit located in the position i.
样例输入
283
样例输出
22

代码:

n=int(input())def sum(i):#从1到i一共多少个数字    if(i<10):        return i    if(i<100):        return i*2-9    if(i<1000):        return (i-99)*3+sum(99)    if(i<10000):        return (i-999)*4+sum(999)    return (i-9999)*5+sum(9999)while n:    n=n-1    k=int(input())    i=1    while sum(i)<k:           i=i+1        k=k-sum(i-1)    i=1    while sum(i)<k:        i=i+1    k=k-sum(i-1)    #i的第k位    print(str(i)[k-1])

这个代码十分有意思,第-10行到第-7行 和 第-6行到第-3行 只有缩进不一样

原创粉丝点击